Class.forName("Something");
和Class.forName("Something").newInstance();
之间有什么区别请澄清我。
答案 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()