日期:2014-05-20  浏览次数:20650 次

用反射就能实例化了吗?
如果将类的构造方法定义成private ,显然在类的外部无法实例化这个类。那么通过反射可以实例化吗?

------解决方案--------------------
反射可以访问private的方法 所以可以实例化
------解决方案--------------------
是可以的,反射和私有没有关系的,具体的原理可以参照我的博客,关于反射机制的内容
------解决方案--------------------
可以的,但你为什么要这么做呢,如果一定要将类的构造方法设置成private,应该是怕其他地方四处new出来实例吧,可以用单例模式哦
------解决方案--------------------
原始设计为private,必然有其设计意图,随意篡改可能造成不可预知的灵异后果,楼主需谨慎啊。

Constructor refCon = XXOO.Class.getDeclaredConstructor(...);
refCon.setAccessible(true); // 主要就是这句话了