在Java应用程序运行时定义类
问题内容:
在Java中,是否可以在应用程序运行时动态创建类定义,然后创建该类的对象?
例如,正在运行的应用程序将读取一个文本文件,该文件包含要包含在新类中的类成员列表。然后,应用程序将基于成员列表定义类定义,然后使其实例化。
问题答案:
是的,这样做是有可能的,从理论上讲,您的类文件是字节代码,而字节代码最后是字节数组!然后可以使用defineClass(String,byte
[],int,int)方法获取一个Class实例,该实例可用于通过反射实例化对象。
实际上,您可以使用CGLib或javaassist之类的东西。
您还可以使用很长的方法在文件中生成Java代码,调用编译器,然后加载文件。