2015-11-18 2 views
12

Когда я использую 8 операторный метод двойной ссылки двоеточие Java (::) с новым оператором (например, MyType::new), я получаю эту ошибку в Затмения Spring Tool Suite (STS):Тип org.eclipse.jdt.annotation.NonNull не может быть разрешен. Это косвенно ссылается из требуемых .class файлов

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

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

ответ

6

Описание ошибки приведено в комментарии Stephan Herrmann. Существует открытый Eclipse issue, чтобы сделать эту проблему более удобной для пользователя.

Решение должно включать в себя следующую зависимость:

<dependency> 
    <groupId>org.eclipse.jdt</groupId> 
    <artifactId>org.eclipse.jdt.annotation</artifactId> 
    <version>2.0.0</version> 
</dependency> 
+2

Правильно, ошибка указывает, что проект Eclipse сконфигурирован для выполнения нулевого анализа на основе аннотаций, но никаких нулевых аннотаций в пути к классам нет. Создание доступных нулевых аннотаций (в зависимости от того, какой механизм зависимости использует ваш проект) - это не просто обходной путь, а фактически правильное решение. Ошибка Eclipse позволяет сообщать об этой проблеме конфигурации (лучше, чем ошибка разрешения в вопросе). –

+0

@StephanHerrmann, спасибо за разъяснение. Я обновил свой ответ. – luboskrnac

6

Другим вариантом является отключить аннотацию на основе нуль-анализ функцию в Eclipse.

Откройте глобальные настройки или параметры проекта и перейдите к Java > Compiler > Warnings. В категории Null analysis снимите отметку Enable annotation-based null analysis.

Рабочее пространство необходимо будет перестроить, и эти ошибки не будут отображаться снова.

Смежные вопросы

 Смежные вопросы