Class.forName(“Something”)和Class.forName(“Something”)之间的区别.newInstance();

时间:2013-11-07 06:23:45

标签: java

Class.forName("Something");Class.forName("Something").newInstance();之间有什么区别请澄清我。

3 个答案:

答案 0 :(得分:10)

Class.forName("Somthing"); 

只需在内存中加载该类

Class.forName("Somthing").newInstance();

将类加载到内存中,并创建由加载的Class表示的类的实例。

答案 1 :(得分:2)

1:如果你只对类的静态块感兴趣,只加载类就可以了,并且会执行静态块 那么你需要的只是

Class.forName("Somthing");

2:如果你有兴趣加载类,执行它的静态bloacks并且还想访问它的非静态部分,那么你需要一个实例 然后你需要

Class.forName("Somthing").newInstance();

答案 2 :(得分:0)

Class.forName只是加载类,newInstance方法调用一个新对象

Class myclass = Class.forName("someClass"); // Load the class
someClass obj = (someClass) myclass.newInstance(); // someClass obj = new someClass()