这个课程讲的Class类实例对象的方法时,第一种就是Class<?>cs=Foo.class,其实这个.class是一个静态变量吗?因为他可以直接用类名调取?还有对于一些采用单例设计模式,我们怎样运用反射取得某个类实例对象呢?
1 回答
已采纳
HansonQ
TA贡献223条经验 获得超56个赞
public class A{ private static A a = new A(); private A(){};//私有化构造函数 public A getSingleton(){ return a; } } //上面这个就是简单的单例 我们知道反射可以反射出一个类的任意构造方法。 对应公共的构造方法我们可以直接利用但是对于私有的构造函数,我们需要取消代码校验(也就是暴力访问) Class<A> a = A.class;//静态变量(没深入想过,一般是不会使用这个这个方法) Class<A> clazz = Class.forName("A类的权限路径");//这种用的比较多 Constructor cons = clazz.getDeclaredConstructor();//获得私有的构造函数 cons.setAccessible(true);//暴力访问 Object object = cons.newInstance();//实例化对象
添加回答
举报
0/150
提交
取消