我想将以下代码从 Java 翻译成 Scala:
Foo foo = new Foo() { private static final long serialVersionUID = 12345L; }
类Foo
是一个抽象类。
等效代码在 Scala 中是怎样的?
我想将以下代码从 Java 翻译成 Scala:
Foo foo = new Foo() { private static final long serialVersionUID = 12345L; }
类Foo
是一个抽象类。
等效代码在 Scala 中是怎样的?
有一个用于添加 ID 的 Scala 注释。但似乎您不能将此解决方案应用于匿名内部类。但是,根据Scala FAQ:
在 Scala 中,评估为编译时已知常量的私有值被转换为私有静态最终 Java 变量。这个未记录的功能应该可以为您解决问题。只需检查 Scala 中列表的实现(参见例如 src/scala/List.java)。两个类 :: 和 Nil 都有一个如下形式的字段 serialVersionUID: private val serialVersionUID = numeric literal;
编码
object Ser extends Application {
trait Foo { def xy: Int }
val x = new Foo with java.io.Serializable { def xy = 2; private val serialVersionUID = 1L }
}
用 2.8.1 编译器编译得很好。我还没有测试过它,尽管结果类的串行版本是否实际上是提供的。