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

Реализованные классы/подклассы в контенте помогают в eclipse

Что я пытаюсь сделать, так это:

List<String> list = new 

а затем нажмите Ctrl + Space и получите ArrayList<String>() (среди прочего), чтобы отобразиться в предложении типа.

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

Это Eclipse Java EE helios, но при необходимости я могу обновить до индиго.

Я попробовал посмотреть здесь для справки, но не нашел информацию, которую я искал. Я попытался проверить все поля в разделе "Типы предложений по умолчанию" (Java → Editor → Content Assist → Advanced) безрезультатно.

4b9b3361

Ответ 1

Eclipse не знает, какой класс реализует интерфейс, и не будет загружать их для всех интерфейсов, которые он имеет. НО, Eclipse может узнать то, что вы используете, и показать его вам при следующем использовании, возможно, что с вами случилось, со временем вы научили Eclipse реализованным классам!

Вот пример Eclipse перед обучением/и после изучения того, какие классы реализуют Map.

enter image description here

Как вы можете видеть на изображении, в первый раз Eclipse не знал ничего, кроме HashMap, который я использовал раньше.

После этого я использовал TreeMap и LinkedHashMap, набрав их вручную (только первый раз) и Eclipse теперь кэшировал их.

Как предлагали ребята, вы можете поместить точку на Map и нажать Ctrl+T, чтобы все классы выполнили это. Будет полезно в первый раз.

ОБНОВЛЕНИЕ в 2014 году!

Как заметил К.Карпентер, эта функция отключена в новых версиях Eclipse. Чтобы снова включить его. Перейдите в окно- > Настройки- > Java- > Editor- > Content Assist- > Advanced.

В разделе "Типы предложений по умолчанию" вам нужно будет проверить предложения Java Type

Ответ 2

Код, подобный этому, является одним из моих любимых ненавистников Java Generics. Я использую библиотеки Google Guava, чтобы сделать мой код generics более удобочитаемым, а в качестве побочного эффекта не нужна эта особенность в Eclipse ( хотя я согласен, что он должен быть реализован). У Guava есть аналогичная поддержка наборов тоже.

Например, я обычно объявляю свой код следующим образом:

import com.google.common.collect.Lists;
...
List myList<String> = Lists.newArrayList();

Ответ 3

Я хотел бы видеть, что Eclipse делает это, но я думаю, что контентная поддержка никогда не работала без начального символа (если нет какой-то скрытой функции, которую мы не знаем).

Ну, имея это в виду, то, что я делаю, чтобы обойти "блокировку с помощью самых используемых реализаций", - это посмотреть на javadoc в разделе All Known Implementing Classes, чтобы увидеть другие возможности, которые я мог бы использовать.

Я знаю, что это не решение in-Eclipse, но это может помочь некоторым пользователям, которые застряли в одной и той же проблеме.

Ответ 4

Не претендуя на то, чтобы быть ответом на ваш вопрос, но я использую Quick Fix (Ctrl + 1/Ctrl + 2), чтобы определить новую локальную переменную или поле.

Сначала я печатаю (возможно, используя Ctrl + Space для Content Assist):

new ArrayList<String>();

Затем я нажимаю Ctrl + 2 и L, который присваивает оператор новой локальной переменной, генерируя определение переменной с создаваемым типом:

ArrayList<String> arrayList = new ArrayList<String>();

Наконец, я использую вкладку (также можно использовать Enter), чтобы перемещаться между вставленными arrayList и arrayList, чтобы указать точное имя переменной и ее тип из раскрывающегося списка:

List<String> list = new ArrayList<String>();

Нажатие вкладки в третий раз перемещает курсор в конец инструкции.

Надеюсь, вы также найдете этот способ полезным.

Ответ 5

Здесь вы можете добавить новый шаблон для затмения, тогда все, что вам нужно сделать, это напечатать arraylist, нажать ctrl + space и создать для вас всю декларацию. Все, что вам нужно сделать, это добавить тип и имя.

Сохраните этот файл, затем импортируйте его в затмение

Вот как импортировать/экспортировать шаблон

  • Перейдите в окно > Настройки > Java > Редактоp > Шаблоны

  • Выберите нужные шаблоны. NB! Флажки не указывают что выбрано; они используются для включения/выключения шаблона. шаблон выбирается, если выбрана вся строка в таблице, поэтому используйте Ctrl + левый клик или метод, специфичный для вашей ОС, для многократного выбора шаблоны.

  • Нажмите "Импорт..." и выберите полученный XML файл. Или Экспорт... и укажите имя файла.

Введите arrayList

Type arraylist

Нажмите ctrl + space и выберите arraylist

Press Ctrl + Space

Введите тип и имя Fill in the type and name

Ответ 6

Я могу это сделать, но он не отображается в предложении типа. Попробуйте ввести:

List<String> list = new Ar

Нажмите Ctrl-Space и просто примите первое предложение. Он заканчивается для ArrayList<String>() для меня (это использует дистрибутив SpringSource Tool Suite Eclipse).