【发布时间】:2011-09-11 00:07:45
【问题描述】:
是否有将 Java 对象序列化为 Java 代码的实现?例如,如果我有对象
Map<String,Integer> m = new Map<String,Integer>();
m.put("foo",new Integer(21));
我可以用这个序列化它
ObjectOutputStream out = new ObjectOutputStream( ... );
out.writeObject( m );
out.flush();
例如,输出将是
java.util.Map<String,Integer> m = new java.util.Map<String,Integer>();
m.put("foo",new Integer(21));
你为什么想要这个?有时,以编程方式部分创建复杂对象然后在代码中手动完成创建更容易。然后可以将此代码包含在源代码中,并与其他所有内容一起控制版本。请注意,使用外部序列化对象也不例外。
感谢您提供的任何帮助。
【问题讨论】:
-
我认为没有任何(标准)方法可以做到这一点
-
(+1) 表示“你为什么想要这个”,很多问题都想要一些不寻常的东西,但是,它没有解释为什么。那里有很多自动代码生成,当主要的东西生成时,只有少数细节是手工编码的......
-
另一种选择是静态代码生成(由外部实体) - 因此您不必手动进行。这样做的好处是您不必花费 CPU 周期对其进行反序列化。
-
虽然是前段时间,但有没有“以编程方式部分创建复杂对象”和“手动完成创建”的示例?你找到合适的替代品了吗?
-
这是可能的,但它适用于所有 Java 对象。
标签: java serialization code-generation