Java范围构造不能使用类型使用来注释



我想用 @Nullable -antotation注释一个完全合格的类名称(来自Java检查器框架),例如:

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语言规范(版本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*/

最新更新