是否可以让 Castor 编组/解组 EnumMap?

发布于 2024-07-15 10:46:43 字数 160 浏览 7 评论 0原文

我正在使用 Castor 来编组/解编我的 Java 对象,其中一个对象包含一个 EnumMap。 Castor 可以编组/解组 EnumMap 吗? 我有一个包含一些嵌套 HashMap 的映射文件,但我从未通过 Castor 推送 EnumMap。 如果可以的话,是如何通过映射文件来完成的呢?

I'm using Castor to marshal/unmarshal my Java objects, one of which contains an EnumMap.
Can Castor marshal/unmarshal EnumMaps? I have a mapping file with some nested HashMaps, but I've never pushed an EnumMap through Castor. If it is possible, how is it done through the mapping file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

御守 2024-07-22 10:46:43

其中一个大问题是 Enum 不能真正被序列化和恢复,至少在 Java 1.5 中不能。 我认为 Java 1.6 中也没有。

由于默认情况下枚举不能序列化或 XMLEncoded,因此我非常怀疑 EnumMap 是否可以序列化。 来自 castor 网页

虽然您始终可以使用自己的
自定义 FieldHandler 进行处理
类型安全枚举类,Castor
确实有一个内置的方法
处理这些类型的类。
如果类型安全枚举类有一个
公共静态值(字符串)
方法 Castor 会调用该方法
的正确实例
返回枚举。 注意:你会
还需要禁用默认的
构造函数检查映射文件
(参见上面第 7.4 节了解更多信息
这个)。

如果这不起作用,您必须编写自己的 字段处理程序

我希望这个能有一点帮助。

One of the big problems is that Enums can't really be serialized and restored, at least not in Java 1.5. And I think also not in Java 1.6.

As enums can not - by default - be serialized or XMLEncoded I very much doubt an EnumMap can be serialized. From the castor web page :

While you can always use your own
custom FieldHandler for handling
type-safe enumeration classes, Castor
does have a built-in approach to
dealing with these types of classes.
If the type-safe enum class has a
public static valueOf(String)
method Castor will call that method so
that the proper instance of the
enumeration is returned. Note: You'll
also need to disable the default
constructor check in the mapping file
(see section 7.4 above to see more on
this).

if that does not work you have to write your own field handler.

I hope this helps a bit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文