Подтвердить что ты не робот

Тип org.eclipse.jdt.annotation.NonNull не может быть разрешен. Это косвенно ссылается на требуемые файлы .class

Когда я использую ссылку на метод Java 8 для двойного двоеточия (::) с новым оператором (например, MyType::new), я получаю эту ошибку в Eclipse Spring Tool suite (STS):

Тип org.eclipse.jdt.annotation.NonNull не может быть разрешен. Это косвенно ссылается на требуемые файлы .class

Как избавиться от этой ошибки?

4b9b3361

Ответ 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