Java 使用类实例加载类
有没有简单的方法,加载一个给定类实例的类? 我知道我可以通过调用Java 使用类实例加载类,java,reflection,Java,Reflection,有没有简单的方法,加载一个给定类实例的类? 我知道我可以通过调用 Class.forName(nameOfClass); 其中,nameOfClass是我要加载的类的名称 我还知道通过这样实例化一个类 clazz.newInstance(); 其中,clazz是Class的一个实例,如果以前没有加载该类,则该类将加载,但如果不需要,我不想实例化它 我的问题是,对于给定的类实例,是否有任何简单的加载类的方法 我可以这样解决这个问题: try { Class.forName(clazz.
Class.forName(nameOfClass);
其中,nameOfClass
是我要加载的类的名称
我还知道通过这样实例化一个类
clazz.newInstance();
其中,clazz
是Class
的一个实例,如果以前没有加载该类,则该类将加载,但如果不需要,我不想实例化它
我的问题是,对于给定的类
实例,是否有任何简单的加载类的方法
我可以这样解决这个问题:
try {
Class.forName(clazz.getName());
} catch (ClassNotFoundException ex) {
assert false : "No way!";
}
但我认为这太复杂了。从你的评论来看:
我不想实例化。。。刚装
课堂–15分钟前的BartisÁron
然后你就可以休耕了:
在类中添加方法:
public static final void init() {
}
然后就叫它:
YourClass.init();
如果你有一个类的实例,这意味着这个类已经被加载了,不是吗?我想你可能会感到困惑。您有一个
类
的实例,它对应于要加载的类。例如,如果您调用Class.forName(“my.Foo”)
,那么您已经加载了my.Foo
,并且您所拥有的Class
实例是您试图加载已加载的类的Foo
@BartisÁron类。时期您不能对尚未加载的类调用clazz.getName()
。@Bartis我想您不明白我的评论。如果您有一个类实例,则该类已经加载。您似乎理解class.forName(className)
加载一个给定名称的类。由于您有一个类
实例,这个步骤已经完成了-如果不是由您显式完成的,那么是由其他一些代码完成的-因此类已经被加载了。。。这是一个解决方案。。。我不想进行任何不必要的方法调用,但它可以工作,而且更简单。((-):尽管我做了很多努力,但还是不够精确。q-:无论如何,答案被接受了。