繁体   English   中英

将Java对象序列化为Java代码

[英]Serialize Java objects into Java code

有人知道一个Java库,它将Java对象层次结构序列化为生成此对象层次结构的Java代码吗? 与Object / XML序列化一样,只是输出格式不是二进制/ XML而是Java代码。

序列化数据表示对象的内部数据。 没有足够的信息来确定您需要调用对象来重现内部状态的方法。

有两种明显的方法:

  • 将序列化数据编码为文字字符串并对其进行反序列化。
  • 使用java.beans XML持久性,这应该很容易使用您喜欢的XML-> Java源技术进行处理。

好问题。 我正在考虑将对象序列化为java代码以使测试更容易。 用例是将一些数据加载到db中,然后生成创建对象的代码,然后在测试方法中使用此代码来初始化数据,而无需访问DB。

在某种程度上,对象状态不包含足够的信息来知道它是如何被创建和转换的,但是,对于简单的Java bean,没有理由不应该这样做。

你是否想为此目的写一个小型图书馆? 我很快就会开始编码!

我不知道任何库可以开箱即用,但您应该能够将众多对象中的一个用于XML序列化库并自定义后端代码以生成Java。 可能没有太多代码。

例如,快速谷歌出现了XStream 我从来没有使用它,但似乎支持除XML之外的多个后端 - 例如JSON。 您可以实现自己的编写器,只需编写重新创建层次结构所需的Java代码。

我相信你可以对其他库做同样的事情,特别是如果你可以挂钩到SAX事件流。

请参阅: HierarchicalStreamWriter

XStream是我用于序列化为XML的序列化库。 应该可以并且相当容易地扩展它以便它编写Java代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM