什么是scala @Serializable和Java Serializable的区别?

9
Scala中@Serializable的作用方式与Java中的Serializable不同吗?我的意思是序列化对象的方式,还是两者都使用相同的标准序列化?

3
在Scala 2.9中,@Serializable已经被弃用,你应该像在Java中一样实现Serializable。 - tuxSlayer
2个回答

5

Scala编译成JVM字节码,因此唯一的区别在于Scala如何实现此转换。Scala在类型检查期间将注释转换为接口,这可能会导致一些微妙的问题,请参见此处

据我所知,@Serializable已经被弃用 - 与Scala中的其他注释(使用volatile注释而不是指定符号)相比,我并没有看到太多优势...它并不能使代码更加清晰或简单。


6
Scala不会编译成Java代码,而是编译成JVM字节码,就像Java一样。 - Don Roby
@Don 是的,我应该说Java字节码,因为那是最终结果。但是由于我理解Scala使用Java编译器,所以这个语句在技术上是正确的(即使只是在中间步骤中);) - Voo
我原以为他们使用Java编译器,有趣的是他们并没有。一个源代码转换不是会更简单一些吗?(例如获取所有免费的Java编译器的进展)。如果是那种情况,那确实是有点草率了。 - Voo

0

Serializable只是一个标记接口。你不需要实现任何方法。注解应该是更清晰的解决方案。但意思是相同的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接