猿问

对于.class的问题.

这个课程讲的Class类实例对象的方法时,第一种就是Class<?>cs=Foo.class,其实这个.class是一个静态变量吗?因为他可以直接用类名调取?还有对于一些采用单例设计模式,我们怎样运用反射取得某个类实例对象呢?

JKWong
浏览 1507回答 1
1回答

HansonQ

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();//实例化对象
随时随地看视频慕课网APP

相关分类

Java
我要回答