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"
}