如何从Java中的类名称获取类对象
问题内容:
我知道该类的名称,说 “ MyClass”, 并且想检索该Class
对象。 MyClass.class
供将来参考。有没有办法做到这一点?
我已经浏览了整个网络,但发现与之相关的大多数内容都与有关ClassLoader
,我认为这不适合我的情况。我不想初始化一个类,而只是获取一个类对象以备将来使用。
编辑:关于此的第一个答案:
我已经检查了该forName()
方法,但我认为这也应该初始化该类。现在,我可以使用完整参数来调用它,并传递false
给第二个参数,但是第三个必须是null
或什么?
将
Class.forName("MyClass", false, null);
回报MyClass.class
?
实际上,我想做的是将与Class
对象关联的字符串ID数组替换为从中自动获取类对象的ID数组,以摆脱一些手动工作:)
感谢您的快速解答,也很抱歉没有在此之前提及。
问题答案:
您可以使用:
Class c = Class.forName("com.package.MyClass");
然后实例化一个对象:
Object obj = c.newInstance();
编辑:这只是最简单的用例。如注释中所示,您将需要考虑初始化过程引发的构造函数参数和异常。该对JavaDoc中newInstance
有所有的细节。