Конструкция Java Scoping не может быть аннотирована с использованием типа
Я хочу аннотировать полное имя класса с @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
Как я могу аннотировать полные имена классов?
1 ответ
Решение
Спецификация языка Java (черновик для версии 8) §8.3 определяет "UnannClassType" как
UnannClassType:
Идентификатор [TypeArguments]
UnannClassOrInterfaceType. Идентификатор {Annotation} [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*/
,