我想把下面这段代码从Java翻译成Scala:
Foo foo = new Foo() { private static final long serialVersionUID = 12345L; }
类Foo
是一个抽象类。
等效的代码在Scala中是怎样的?
有一个用于添加ID的Scala注释。但似乎不能将此解决方案应用于匿名内部类。但是,根据Scala FAQ:
的代码在Scala私有值中求值到编译时已知的常量是不是变成了私有静态finalJava变量。这个无证功能应该能帮你解决这个问题。来看看的实现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编译器中可以很好地编译。我还没有测试它,尽管结果类的串行版本是否实际上是提供的。