Class.forName()
和Class.forName().newInstance()
之间的区别是什么
我不明白有什么显著的区别(我读过一些关于它们的文章!)。你能帮帮我吗?
发布于 2010-01-19 18:13:46
Class.forName()为您提供了类对象,这对于反射很有用。这个对象拥有的方法是由Java定义的,而不是由编写类的程序员定义的。它们对于每个类都是相同的。在上面调用newInstance()会给出一个该类的实例(即调用Class.forName("ExampleClass").newInstance()
相当于调用new ExampleClass()
),在这个实例上你可以调用类定义的方法,访问可见字段等。
发布于 2013-11-07 21:47:09
1:如果你只对类的静态块感兴趣,那么加载类就可以了,并且会执行静态块,那么你所需要的就是:
Class.forName("Somthing");
2:如果你有兴趣装入类,执行它的静态块,还想访问它的非静态部分,那么你需要一个实例,然后你需要:
Class.forName("Somthing").newInstance();
发布于 2010-01-19 18:16:38
Class.forName()获取对类的引用时,Class.forName().newInstance()尝试使用类的无参数构造函数来返回新实例。
https://stackoverflow.com/questions/2092659
复制相似问题