neo*_*sis 3 java reflection casting
假设我有一个名为ObjectFoo.class的类文件,但我无法访问ObjectFoo.java源文件,因为类文件是在运行时创建的.在这种情况下有没有办法投射物体?
目前,我正在使用此代码来转换对象,但在此示例中,我需要在类路径中包含ObjectFoo.java:
Class c = Class.forName("ObjectFoo");
ObjectFoo object = (ObjectFoo) c.newInstance();
Run Code Online (Sandbox Code Playgroud)
目标是使用Java反射从其类文件中实例化对象. 我正在寻找仅使用Java API而不使用其他第三方库的解决方案.
在此先感谢您的回答!
乔纳森.
当您使用第三方库,包作为.jar文件时,您将始终编译并运行.class文件..jar存档包含.class文件,而不是.java文件.
因此,如果ObjectFoo类不属于包,则上面的代码是正确的.否则,您将必须将完整的包像路径一样放到类中.