Тип org.eclipse.jdt.annotation.NonNull не может быть разрешен. Это косвенно ссылается на требуемые файлы .class
Когда я использую ссылку на метод Java 8 для двойного двоеточия (::
) с новым оператором (например, MyType::new
), я получаю эту ошибку в Eclipse Spring Tool suite (STS):
Тип org.eclipse.jdt.annotation.NonNull не может быть разрешен. Это косвенно ссылается на требуемые файлы .class
Как избавиться от этой ошибки?
Ответы
Ответ 1
Описание ошибки приведено в комментарии Штефана Херрманна. Существует открытая проблема Eclipse, чтобы сделать эту проблему более удобной для пользователя.
Решение состоит в том, чтобы включить следующую зависимость:
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.annotation</artifactId>
<version>2.0.0</version>
</dependency>
Ответ 2
В Eclipse есть функция, называемая аннулированием на основе аннотаций, которая обеспечивает проверку во время компиляции с использованием аннотаций (например, @NonNull
или @Nullable
). Вы получаете эту ошибку, когда аннотации отсутствуют в пути к классам.
Если вы не планируете использовать аннотационную функцию анализа нуля, вы можете просто отключить ее в Eclipse.
Откройте глобальные настройки или настройки проекта и перейдите в Java > Compiler > Warnings
. В категории " Null analysis
" снимите флажок " Enable annotation-based null analysis
. Затем перестройте рабочее пространство, и эти ошибки больше не будут отображаться.
Ответ 3
Я решил это, изменив "Использовать аннотацию по умолчанию для нулевых спецификаций"
Я должен ввести оба имени класса:
javax.annotation.Nonnull
javax.annotation.Nullable