我正在使用Castor来编组/解组我的Java对象,其中一个包含EnumMap。 Castor可以编组/解组EnumMaps吗?我有一个带有一些嵌套HashMaps的映射文件,但我从来没有通过Castor推送EnumMap。如果可能,如何通过映射文件完成?
答案 0 :(得分:2)
其中一个大问题是Enums无法真正被序列化和恢复,至少在Java 1.5中是这样。我认为也不是在Java 1.6中。
由于枚举不能 - 默认情况下 - 被序列化或XMLEncoded我非常怀疑EnumMap是否可以被序列化。来自castor web page:
虽然你可以随时使用自己的 自定义FieldHandler进行处理 类型安全的枚举类,Castor 确实有一个内置的方法 处理这些类型的类。 如果类型安全的枚举类有一个 public static valueOf(String) 方法Castor将调用该方法 正确的实例 返回枚举。注意:你会的 还需要禁用默认值 构造函数检查映射文件 (见上文第7.4节,了解更多信息 这一点)。
如果这不起作用,您必须自己编写field handler。
我希望这会有所帮助。