從REPL恆定:添加顯式類型爲val防止VAL被用作註釋
scala> final val x = "x"
x: java.lang.String("x") = x
scala> @javax.persistence.Table(name = x) case class foo()
defined class foo
scala> final val x:java.lang.String = "x"
x: java.lang.String = x
scala> @javax.persistence.Table(name = x) case class foo()
<console>:6: error: annotation argument needs to be a constant; found: x
@javax.persistence.Table(name = x) case class foo()
有人可以解釋爲什麼沒有這種類型僅適用?
爲什麼使用關鍵字'final'? – paradigmatic
final是創建下面Daniel提到的字面常量所必需的。沒有它,你會得到上面提到的同樣的錯誤。 – scalapeno