gpt4 book ai didi

java - 如何使用 Java 反射从文件中读取类和对象名称?

转载 作者:行者123 更新时间:2023-11-30 10:16:29 24 4
gpt4 key购买 nike

我有一个名为 Objects.dat 的文件,我想使用 Java 反射从该文件中读取类名和对象名。我可以从另一个 Java 类中读取,但不能从文件中读取。我该如何解决这个问题?

Java类

public class EmployeeInfo {
private String username = "John";
private int userage = 23;
}

Objects.dat 包含与 Java 类相同的文本。

类阅读器

public class FileRd {
public static void main(String[] args) {
try {
Class cls = Class.forName("EmployeeInfo");
Object obj = cls.newInstance();

System.out.println("Class Name-->"+obj.getClass());
Field[] fields = cls.getDeclaredFields();
for( int i = 0 ; i < fields.length ; i++ ) {
fields[i].setAccessible(true);
System.out.println("Name-->"+fields[i].getName());
}
}
catch( Exception e ) { e.printStackTrace(); }
}
}

上面的代码适用于 Java 类,但我想输入文件并阅读 -

FileInputStream fin = new FileInputStream("D:\\Objects.bat");

并按功能执行上述操作,但我没能做到。

最佳答案

如果文件已经编译(如果没有,您可以使用 javac 工具通过类路径或字节码工具(如 ASM 或 Javassist)编译它),您需要一个自定义类加载器。

然后使用 ClassLoader 加载文件 (.class) 和 findClass。

关于java - 如何使用 Java 反射从文件中读取类和对象名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50047797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com