【问题标题】:Is possible to make a 3rd party class java.io.Serializable using Typeclasses in Scala ?是否可以使用 Scala 中的 Typeclasses 制作第 3 方类 java.io.Serializable ?
【发布时间】:2014-03-29 01:50:36
【问题描述】:

我想在 Scala 中为 org.joda.time.format.DateTimeFormat 实现 java.io.Serializable。是否可以通过 Typeclasses 实现这一点

【问题讨论】:

    标签: scala jodatime typeclass


    【解决方案1】:

    我不认为这是可能的,因为:

    为了序列化一个对象,您需要知道对象的整个状态,以便您可以在反序列化中重建状态。你想如何得到DateTimeFormat-object这个极其复杂的状态?没有可用于此目的的公共 API。

    我的建议是:不要序列化格式对象,将其存储在静态常量中就足够了,因为它是不可变的。这完全涵盖了双方(提供者和消费者)使用相同格式的用例。如果您确实需要动态发送格式对象,您可以只发送格式模式字符串(在大多数情况下它们足够强大)并在反序列化中使用它们在接收器上构造格式对象。

    【讨论】:

      【解决方案2】:

      java.io.Serializable 的设计不适合这种情况。有诸如https://github.com/scala/pickling 之类的替代方案。但是,正如 Meno Hochshild 所提到的,它们可能不适用于 DateTimeFormat

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-15
        • 2017-04-24
        • 2013-10-14
        • 2018-08-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多