Scala的註解報錯:annotation argument needs to be a constant

java和scala中的annotation,有一點是不太一樣的。
在java中我們可以這樣寫

public static final String USER_ID = "userId";
@Field(USER_ID)
private long userId;

但是在scala中如果這樣寫就會報錯:annotation argument needs to be a constant

如果我們換一下,寫一個object,把該常量放到object中,就像下面這樣

@Field(USER_ID)
object ScanningBookmark {
    final val USER_ID:String = "userId"
    final val STATUS_ID:String = "statusId"
}

但還是會報同樣的錯。通過查閱資料瞭解到,scala中的常量定義時時不能有類型的,所以作如下修改就可以編譯通過了。

@Field(USER_ID)
object ScanningBookmark {
    final val USER_ID = "userId"
    final val STATUS_ID = "statusId"
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章