参考以下链接,我在运行时创建了类http://blog.javaforge.net/post/31913732423/howto-create-java-pojo-at-runtime-with-javassist。现在我需要查看创建的类,这意味着它将在何处创建类文件?是否可以将其保存在磁盘/工作区?
答案 0 :(得分:2)
获取java对象并将其写入类文本文件的过程称为序列化。该语言具有良好的内置支持。
可以找到有关这些功能的Oracle文档here和教程here。
一般来说,它非常易于使用且易于理解,并提供了一些聪明的功能,包括能够检测程序的某个版本是否保存了记录但是不兼容的版本正在尝试加载它。
此stack overflow question对您也很有用。
答案 1 :(得分:2)
您可以在调用cc.toClass()
之前或之后立即调用cc.writeFile()
来存储包含所生成类的字节码的类文件。
我不知道获取源文件的等效操作,但是,您可能会考虑这样一个事实:您实际上已经生成了源代码(至少对于方法)并将其传递给Javassist的{{1}为了编译。
因此,使用相同的代码生成整个类的源代码并不难,因为您只需要连接这些方法,添加字段声明并使用类体对其进行封装。毕竟,生成源文件意味着只能以您已经非常了解的格式编写文本文件...
答案 2 :(得分:0)
你为什么要这样做?可以从Pojos创建文件,然后你必须遵循这个教程:
http://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/。但是,您只会将字段的内容写入文件。