2008-09-18 77 views
9

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

回答

1

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

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

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

请参见: HierarchicalStreamWriter

+0

或者将XSL转换应用于任何XStream输出并生成java。无论你对你有多吸引力。 – entzik 2008-09-18 11:11:15

0

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

3

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

有两个明显的方法:

  • 编码序列化的数据在一个字符串和deserialise这一点。
  • 使用java.beans XML持久性,应该很容易使用您最喜欢的XML-> Java源技术进行处理。
+1

对象是java bean,所以所有字段都有getter和setter。我不关心反序列化,我只是想提供一种方法来帮助我们的开发人员编写模拟代码:) – user17456 2008-09-18 09:49:12

1

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

不知何故,对象状态不包含足够的信息来知道它是如何创建和转换的,但是,对于简单的java bean来说,没有理由不应该这样做。

您是否想为此写一个小型图书馆?我会尽快开始编码!