在运行时创建 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。毕竟,生成源文件意味着只是以您已经非常熟悉的格式编写文本文件...
参考以下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。毕竟,生成源文件意味着只是以您已经非常熟悉的格式编写文本文件...