您的位置:首页 > 其它

Scala的注解报错:annotation argument needs to be a constant

2015-08-21 16:09 459 查看
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"
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala