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-:无论如何,答案被接受了。