在编译为字节码时,注释构造函数参数似乎无效。我也没有编译警告。
以下作品。 getAnnotations
字段的name
会返回javax.annotation.Nullable
。
class Person {
@Nullable var name: String = _;
}
以下情况不适用于val
或var
。
class Person(@Nullable var name: String)
这可能不是故意的,所以我有什么遗漏或者我应该提交错误报告吗?
答案 0 :(得分:35)
在构造函数参数上指定注释时,需要指定应该注释的内容。
为此,请使用scala.annotation.target
中的一个或多个注释来注释您的注释,例如getter
,setter
或您的field
:
import annotation.target.field
class Person(@(Nullable @field) var name: String)
您还可以使用类型别名:
type NullableField = Nullable @field
class Person(@NullableField var name: String)
现在这个特定的注释和其他包含在 scala.annotation.meta 包中,而不是scala.annotation.target
import scala.annotation.meta.{field, param}