Eclipse не вставляет оператора "бриллиант" в проект java 8

У меня есть проект maven, настроенный на использование Java 8, и все работает нормально, eclipse компилирует код, например:

Map<String,String> map = new HashMap<>();

Он даже жалуется на код старого стиля ( "избыточная спецификация аргументов типа" ), когда я устанавливаю это на вкладке "Ошибки/Предупреждения". Проблема в том, что я не могу решить, как заставить этот синтаксис по умолчанию использовать autocompletion - я уверен, что видел, что он работает раньше, но теперь, когда я вставляю конструктор в ctrl-space, он настаивает на добавлении параметров, что мне не нравится.

Может ли кто-нибудь намекнуть, какие настройки нужно проверить, чтобы сделать поддержку содержимого insert < > вместо < String, String > ? Или, возможно, это связано с тем, что я использую Java 8, а не Java 7, или что я нахожусь на maven?

Ответы

Ответ 1

У меня была эта проблема всего несколько минут назад и она разрешила ее наполовину, набрав вопрос SO.

Автозавершение Eclipse, по-видимому, приоритизировало старый синтаксис старого стиля после того, как я некоторое время назад искал расширенные настройки поддержки контента. Попробуйте сбросить Java > Editor > Content Assist > Advanced по умолчанию; это было исправлено для меня и вернуло автозаполнение, чтобы поместить синтаксис алмаза по умолчанию.

Ответ 2

У меня была такая же проблема, но решение установить все по умолчанию для меня не работало. Что для меня работало Java > Editor > Content Assist > Advanced и снятие флажков JPA предложений в верхнем окне.

Ответ 3

Я попробовал два других решения, упомянутых здесь, но никто из них не работал у меня. То, что сработало для меня, было Java > Editor > Content Assist > Advanced и проверка Java Non-Type Proposals в верхнем поле.

В другой установке это также должно было быть проверено в нижней области, но оно работало в обеих установках затмения.

Ответ 4

Я наблюдал эту ошибку при компиляции с maven. Чтобы решить эту проблему, мне пришлось исправить переменную среды JAVA_HOME вправо JDK.