【问题标题】:What is the difference between scala @Serializable and Java Serializable?scala @Serializable 和 Java Serializable 有什么区别?
【发布时间】:2011-09-20 14:45:55
【问题描述】:

scala@Serializable的作用方式与JavaSerializable不同?

我是指序列化对象的方式还是两者都使用相同的标准序列化?

【问题讨论】:

  • 在 Scala 2.9 中,@Serializable 已被弃用,您应该像在 Java 中一样实现 Serializable

标签: java scala serialization io serializable


【解决方案1】:

Scala 编译为 JVM 字节码,所以唯一的区别在于 Scala 是如何实现这种转换的。 Scala 在类型检查期间将注释转换为接口,这可能会导致一些微妙的问题see here

无论如何,Afaik @Serializable 已被弃用 - 与 scala 中的其他注释(易失性注释而不是说明符)相比,无论如何我看不到太多优势.. 不会使代码更清晰或更简单。

【讨论】:

  • Scala 不能编译成 Java 代码。它像 Java 一样编译为 JVM 字节码。
  • @Don 是的,我应该说 java 字节码,因为这是最终结果。但是,因为据我了解,scala 使用 java 编译器,因此该语句在技术上是正确的(如果仅在中间步骤中);)
  • 啊,以为他们使用了 java 编译器,有趣的是他们没有。源到源的转换不是更简单更简单(即免费获得java编译器的所有进步)。在那种情况下,是的马虎。
【解决方案2】:

Serializable 只是一个标记接口。您不需要实现任何方法。注释应该是更清洁的解决方案。但是意思是一样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2014-02-25
    • 2011-03-20
    • 2015-01-29
    相关资源
    最近更新 更多