假设我有一个名为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/