在 Java 应用程序运行时定义类

2022-09-03 02:13:44

在 Java 中,是否可以在应用程序运行时动态创建类定义,然后创建该类的对象?

例如,正在运行的应用程序将读取包含要包含在新类中的类成员列表的文本文件。然后,应用程序将根据成员列表定义类定义,然后对其进行验证。


答案 1

是的,从理论上讲,可以这样做,您的类文件是字节码,其末尾是一个字节数组!然后,您可以使用定义类(String, byte[], int, int) 方法获取可用于通过反射实例化对象的类实例。

在实践中,你可以使用像CGLibjavaassist这样的东西。

您还可以使用在文件中生成java代码的长途,调用编译器,然后加载文件。


答案 2

您可以使用 ASM 动态生成类


推荐