我想用 @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
如何注释完全限定的类名?
最佳答案
Java language specification (draft for version 8) §8.3 将“UnannClassType”指定为
UnannClassType:
Identifier [TypeArguments]
UnannClassOrInterfaceType . {Annotation} Identifier [TypeArguments]
因此,您需要声明:
private transient org.apache.lucene.search.@Nullable Query cached_results;
或者在检查器框架的增强 java 7 编译器中:
private transient org.apache.lucene.search./*@Nullable*/ Query cached_results;
注意:普通 Java 编译器会忽略 /*@Nullable*/
。
关于Java 作用域构造不能用类型使用进行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385938/