,# 系列文章目录
前言
好朋友问我,在一个类里面写一个方法,在另外一个包里面怎么通过反射去在调用这个方法,这个在公司里面经常会用到要怎么做到呢
一、需求
二、使用步骤,要怎么做呢
答案
详细分析
假如一个包里面
如果是一个包里面,直接调用就好了,根本不需要用到反射
如果不是一个包里面怎么调用,而且你完全不可以改动以前的包
讲道理,其实不用反射也可以
但是某些特殊情况要求必须要用反射,,不准你实例化怎么处理
那就必须使用到反射了
使用反射得到该方法,并且获得返回值
如果是无参的
也可以获取到当前类的全部方法
总结
反射机智有什么作用:
1、假如你实例化一个person()对象,不使用反射,new person();如果想变成 实例化其它的类,那么
必须修改源代码,并且重新编译。
如果使用反射 class.forName(“person”).newInstance();而且这个类 描述可以写到配置文件中,如**.xml ,这样如果想实例化其它类,只需要修改配置文件的“类描述”就可以了,不需要重新修改代码并且编译
2、反射就像一把手术刀,可以将一个类破开,供你使用
3、增加程序的灵活性
如struts中。zhi请求的派发dao控制。
当请求来到时。struts通过查询配置文件zhuan。找到该shu请求对应的action。已经方法。
然后通过反射实例化action。并调用响应method。
如果不适用反射,那么你就只能写死到代码里了。
所以说,一个灵活,一个不灵活。
很少情况下是非用反射不可的。大多数情况下反射是为了提高程序的灵活性。
因此一般框架中使用较多。因为框架要适用更多的情况。对灵活性要求较高
4、反射也有缺点:
a、可读性不好,相比不使用反射来说,可读性欠佳
b、影响性能
4、初学者有点不好记,多敲几遍,大概十来遍吧,必拿下
5、这个世界上就没有十全十美的东西,代码也一样