-4

Class.forName("Something");和有什么区别Class.forName("Something").newInstance();请澄清一下。

4

3 回答 3

10
Class.forName("Somthing"); 

只是将类加载到内存中

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

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

于 2013-11-07T06:24:39.167 回答
2

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

Class.forName("Somthing");

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

Class.forName("Somthing").newInstance();
于 2013-11-07T06:31:45.487 回答
0

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

Class myclass = Class.forName("someClass"); // Load the class
someClass obj = (someClass) myclass.newInstance(); // someClass obj = new someClass()
于 2013-11-07T06:28:35.653 回答