在运行时创建 Pojo 并将其保存在磁盘上?

Create Pojo at runtime and save it on Disk?

参考以下link,我在运行时创建了classes,http://blog.javaforge.net/post/31913732423/howto-create-java-pojo-at-runtime-with-javassist。现在我需要查看创建的 class,这意味着它将在哪里创建 class 文件? disk/work space 可以保存吗?

你为什么要这样做?可以从 Pojos 创建文件,然后您必须按照本教程进行操作:

http://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/。但是你只会将字段的内容写入文件。

获取 java 对象并将其写入类文本文件的过程称为序列化。该语言对此有很好的内置支持。

可以找到有关这些功能的 Oracle 文档 here and a tutorial here

总的来说,它非常易于使用和理解,并提供了一些巧妙的功能,包括能够检测是否某个版本的程序保存了记录,但不兼容的版本正在尝试加载它。

另外这个stack overflow question对你有用。

您可以在调用 cc.toClass() 之前或之后调用 cc.writeFile() 来存储包含生成的 class.[=14= 字节码的 class 文件]

我不知道获取源文件的等效操作,但是,您可能会考虑这样一个事实,即您实际上已经在生成源代码(至少对于方法而言)并将其传递给 Javassist 的 CtClass 以便编译。

所以使用相同的代码生成整个 class 的源代码并不难,因为您只需要连接这些方法,添加字段声明并用 class 封装它body。毕竟,生成源文件意味着只是以您已经非常熟悉的格式编写文本文件...