我想在Scala中为org.joda.time.format.DateTimeFormat
实现java.io.Serializable。是否可以使用Typeclasses实现这一目标
答案 0 :(得分:3)
我认为这是可能的,因为:
为了序列化对象,您需要知道对象的整个状态,以便在反序列化中重建状态。你想如何得到DateTimeFormat
- 极其复杂的状态?没有可用于此目的的公共API。
我建议:不要序列化格式对象,将它存储在静态常量中就足够了,因为它是不可变的。这完全涵盖了双方 - 提供者和消费者 - 使用相同格式的用例。如果你真的需要动态发送格式对象,你可以发送格式模式字符串(在大多数情况下它们足够强大)并在反序列化中使用它们来构造接收器上的格式对象。
答案 1 :(得分:2)
java.io.Serializable
的设计并不适合这种情况。还有其他选择,例如https://github.com/scala/pickling。但是,正如Meno Hochshild所提到的,它们可能不适用于DateTimeFormat
。