Почему-то, используя длинную версию 13, 13л, работает лучше:
@SerialVersionUID(13l) case class IdentifyMessage(userName : String, user : User, code : Int)
Проверено в REPL с:
java.io.ObjectStreamClass.lookup(IdentifyMessage("hei", User(), 8).getClass).getSerialVersionUID()
Обновление
Я также пытался запустить его как программу; как это:
object SerialTest extends App {
case class User()
@SerialVersionUID(13.asInstanceOf[Long]) case class IdentifyMessage1(userName: String, user: User, code: Int)
@SerialVersionUID(13l) case class IdentifyMessage2(userName: String, user: User, code: Int)
println("#1 " + java.io.ObjectStreamClass.lookup(IdentifyMessage1("hei", User(), 8).getClass).getSerialVersionUID)
println("#2 " + java.io.ObjectStreamClass.lookup(IdentifyMessage2("hei", User(), 8).getClass).getSerialVersionUID)
}
... и получил:
#1 6829060442504540290
#2 13