java - 如何从 Java 中的类名中获取类对象

标签 java reflection class

我知道类名,例如 "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();

编辑:这只是最简单的用例。如注释中所述,您将需要考虑初始化过程引发的构造函数参数和异常。 JavaDocs for newInstance有所有的细节。

关于java - 如何从 Java 中的类名中获取类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1438420/

相关文章:

java - JCR jackrabbit 分页

java - 理解一些 Java 代码 - 我需要一些解释

java - Eclipse 突然关闭 Java 文件,并且现在拒绝识别它

python - 实例化类保留引用

javascript - Html 类事件监听器无法正常工作

java - 读取架构错误 : Could not get list of tables rom database. 可能是 JDBC 驱动程序

java - 使用反射在 Java 中动态显式转换原始类型

java - 如何从方法实例获取类注释?

iphone - 如何在没有模板缓冲区的情况下在 iPhone 上渲染 OpenGL ES 中的反射?

c++ - 在 C++ 中通过赋值初始化自己的 String 类