我想下面这段代码转换从Java到斯卡拉:如何将@SerialVersionUID添加到匿名类?
Foo foo = new Foo() { private static final long serialVersionUID = 12345L; }
类Foo
是一个抽象类。
等效代码在Scala中的外观如何?
我想下面这段代码转换从Java到斯卡拉:如何将@SerialVersionUID添加到匿名类?
Foo foo = new Foo() { private static final long serialVersionUID = 12345L; }
类Foo
是一个抽象类。
等效代码在Scala中的外观如何?
有一个Scala annotation for adding the ID。但看起来,你不能将这个解决方案应用于匿名内部类。然而,根据Scala FAQ:
在这种评估 在编译时 称为恒定Scala的私有值都变成私有静态最后 Java变量。这个无证的 功能应该为你做诀窍。 只需查看Scala中的 列表的实现(请参阅,例如, src/scala/List.java)。两个类:: 和Nil都有以下形式的字段serialVersionUID : private val serialVersionUID =数字字面量;
代码
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编译器。我还没有对它进行测试,但是对于生成的类的序列版本是否实际上是提供的。
标题和实际问题如何相关? – 2011-04-05 11:57:19
好吧,我在标题中问我如何将'@ SerialVersionUID'添加到一个匿名类中,并显示一个带有'serialVersionUID'的构造匿名类的示例,该类展示了所述问题。 – soc 2011-04-05 12:35:58