java - 当我们只有 .class 文件时如何转换对象?

标签 java reflection casting

假设我有一个名为ObjectFoo.class 的类文件,但我无权访问ObjectFoo.java 源文件,因为类文件是在运行时创建。在这种情况下有没有办法转换对象?

目前,我正在使用这段代码来转换对象,但在这个例子中,我需要在我的类路径中包含 ObjectFoo.java :

Class c = Class.forName("ObjectFoo");
ObjectFoo object = (ObjectFoo) c.newInstance();

目标是使用 Java 反射从其类文件中实例化一个对象。 我正在寻找仅使用 Java API 而不使用其他第三方库的解决方案。

预先感谢您的回答!

乔纳森。

最佳答案

当你使用第三方库,打包为.jar文件时,你总是会针对.class文件进行编译和运行。 .jar 文件包含 .class 文件,而不是 .java 文件。

因此,如果 ObjectFoo 类不属于包,则上面的代码是正确的。否则,您将不得不将完整的包放在类的路径中。

关于java - 当我们只有 .class 文件时如何转换对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13561161/

相关文章:

java - 子报表导致死循环

java - 我如何在其中使用数组?

asp.net - 如何使用在控制台应用程序中应用的 DisplayFormat DataFormatString 输出属性(理想情况下按字符串查询对象)?

java - 反射 API 不会破坏数据封装的目的吗?

c++ - 基类到派生类的类型转换

java - Maven 多模块项目打破编译时类解析

java - java中的视频转换

java - 如何使用反射来调用带有原始参数的方法?

c++ - 将 shared_ptr<T> 转换为 shared_ptr<void>

c - 如果类型与左侧操作数匹配,为什么要显式转换右侧指针操作数?