猿问

各位大能!! 使用Class.forName, 和 xxx.class在使用上有区别么

我的意思是, 抛开概念不谈..

public static <T> T getInstance(Class<T> clz){
	try {
		return (T) clz.newInstance();
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
}


public static <T> T getInstance(Class<T> clz){
	try {
		return (T) Class.forName(clz.getName()).newInstance();
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
}

这两种方式, 在使用时会有不同吗?

我吃西瓜很快
浏览 1627回答 1
1回答

大咪

Class.forName("XXXX");的作用是要求JVM查找并加载指定的类,如果在类中有静态初始化的话, JVM必然会执行该类的静态代码段,这时是不确定该类是否已经在JVM中加载。 而XXXX.class是在JVM中加载已经加载过的类。
随时随地看视频慕课网APP

相关分类

Java
我要回答