我有一个简单的帮助函数,如下所示:
def apply[T: ClassTag](self: T, vid: Long): (T with Serializable ) = {
self.asInstanceOf[T @SerialVersionUID(vid) with Serializable]
}
它在Scala 2.10.x中完美编译,但在Scala 2.11.x中我收到以下错误:
17: annotation argument needs to be a constant; found: vid
[ERROR] self.asInstanceOf[T @SerialVersionUID(vid) with Serializable]
^
由于不可能将函数参数声明为final,这限制了我硬编码vid,这是非常低效的。有没有办法绕过这个?
答案 0 :(得分:0)
宣言中的(自:T,val vid:Long)怎么样?