我想使用@Nullable
注释(来自Java Checker Framework)注释一个完全限定的类名,例如:
class Demo {
private transient @Nullable org.apache.lucene.search.Query cached_results;
// ...
}
然而,这会导致错误:
scoping construct cannot be annotated with type-use annotation: @checkers.nullness.quals.Nullable
如何注释完全限定的类名?
答案 0 :(得分:10)
Java language specification (draft for version 8)§8.3将“UnannClassType”指定为
UnannClassType:
标识符[TypeArguments]
UnannClassOrInterfaceType。 {注释}标识符[TypeArguments]
因此,您需要声明:
private transient org.apache.lucene.search.@Nullable Query cached_results;
或者在checker框架的扩充java 7编译器中:
private transient org.apache.lucene.search./*@Nullable*/ Query cached_results;
注意:普通的Java编译器会忽略/*@Nullable*/
。