全国统一服务热线

185-3873-1559

新闻中心

当前位置:首页>新闻中心

获取Class的三种方法

获取Class的三种方法及根据Class创建对象的两种方法

1通过已知的类型获取class

// 根据Example 获取Class =》Example.class

public Class getExample(){

Class clazz = Example.class;

return clazz;

}

2通过实例对象获取class

public Class getExampleByInstance(){

Example example = new Example();

// getClass是Object类里面的方法;《?》 是通配符

Class clazz = example.getClass();

return (Class)clazz;

}

3通过Class.forName获取全路径指定类名的class

/** forName0 本地方法,C++实现,jvm调用

* 1 className 是个类名 2 initialize 是否延迟加载 3 loader 加载器

*/

private static native Class forName0(String className, boolean initialize,

ClassLoader loader, Class caller) throws ClassNotFoundException;

public static Class forName(String className) throws ClassNotFoundException {

Class caller = Reflection.getCallerClass();

return forName0(className, true, ClassLoader.getClassLoader(caller), caller);

}

// 两个forName方法较终都会调用forName0方法去加载class

public static Class forName(String name,

boolean initialize, ClassLoader loader) throws ClassNotFoundException {

....

return forName0(name, initialize, loader, caller);

}

// 示例:通过java.lang.Integer

public Class getInteger()throws ClassNotFoundException{

Class clazz = Class.forName("java.lang.Integer");

return (Class)clazz;

}


QQ咨询
在线咨询
在线报名
185-3873-1559
185-3873-1559
返回顶部