Реализованные классы / подклассы в content assist в eclipse
что я пытаюсь сделать, это:
List<String> list = new
а затем нажмите Ctrl + пробел и получите ArrayList<String>()
(среди прочего), чтобы появиться в предложении типа.
Я думал, что это работает раньше, но недавно мне пришлось переустановить и не могу найти настройку для него.
Это Eclipse Java EE helios, но при необходимости я могу перейти на indigo.
Я пыталась найти здесь за помощью, но не нашел информацию, которую я искал. Я пробовал проверка всех полей в разделе "Виды предложений по умолчанию" (Java -> Editor -> Content Assist -> Advanced " безрезультатно.
6 ответов
Eclipse не знает, какой класс реализует интерфейс, и не будет загружать их для всех интерфейсов, которые он имеет. Но,Eclipse может узнать то, что вы используете и показать его вам при следующем использовании, может быть, это то, что случилось с вами, со временем вы учили Eclipse реализованных классов!
вот пример Eclipse до обучения/и после изучения того, какие классы реализуют Map
.
как вы можете видеть на изображении, в первый раз, Эклипс не знал ничего, кроме HashMap
, который я использовал раньше.
после этого, я использовал TreeMap
и LinkedHashMap
введя их вручную (только в первый раз) и Eclipse теперь сохранила их.
как ребята предложили, вы можете поставить точку на Map
и нажмите кнопку Ctrl+T
это даст всем классам реализации этого. Будет полезно в первый раз.
обновление в 2014 году!
как заметил @K. Карпентер, эта функция отключена в новых версиях Eclipse. Чтобы снова включить его. Перейдите в окно - > настройки - >Java - >редактор - >Content Assist - >дополнительно.
под Виды Предложений По Умолчанию, вам нужно будет проверить Предложения Типа Java
код, как это один из моих домашних животных ненавидит Java Generics. Я использую Google гуавы библиотеки, чтобы сделать мой код дженериков более читаемым, и в качестве побочного эффекта не нужна эта конкретная функция в Eclipse (хотя я согласен, что она должна быть реализована). Guava имеет подобную поддержку для наборов тоже.
например, обычно я объявляю свой код следующим образом:
import com.google.common.collect.Lists;
...
List myList<String> = Lists.newArrayList();
Я хотел бы видеть, как Eclipse делает это, но я думаю, что content assist никогда не работал без символа запуска (если нет какой-то скрытой функции, которую мы не знаем).
Ну, имея это в виду, что я делаю, чтобы обойти 'блокировка с наиболее часто используемыми реализациями' это посмотреть на javadoc в , чтобы увидеть другие возможности, которые я мог бы использовать.
Я знаю, что это не решение в Eclipse, но это может помочь некоторым пользователям, которые застряли в той же проблеме.
вот способ, которым вы можете добавить новый шаблон в eclipse, то все, что вам нужно сделать, это ввести arraylist, нажмите ctrl + пробел, и он создает всю декларацию для вас. Все, что вам нужно сделать, это добавить тип и имя.
Сохраните этот файл, затем импортируйте его в eclipse
вот как импортировать/экспортировать шаблон
перейти в окно > настройки > Java > редактор > Шаблоны
выберите нужные шаблоны. НБ! Флажки не указывают что выбрали; они используются для включения/выключения шаблона. Ля шаблон выбирается, если выбрана вся строка в таблице, поэтому используйте Ctrl+Left Click или метод, специфичный для вашей ОС, чтобы выбрать несколько шаблоны.
нажмите импорт... и выберите полученный XML-файл. Или экспорт... обеспечить имя файла.
введите arrayList
нажмите ctrl + пробел и выберите arraylist
введите тип и имя
не претендуйте на ответ на ваш вопрос, но я использую Quick Fix (Ctrl+1/Ctrl+2) для определения новой локальной переменной или поля.
во-первых, я печатаю (возможно, используя Ctrl+пробел для содержимого Assist):
new ArrayList<String>();
затем я нажимаю Ctrl+2 и L который присваивает оператор новой локальной переменной, генерируя определение переменной с типом экземпляров:
ArrayList<String> arrayList = new ArrayList<String>();
наконец, я использую tab (можно также использовать Enter) для навигации между вставленными arrayList
и ArrayList
указать точное имя переменной и ее тип из выпадающего списка:
List<String> list = new ArrayList<String>();
нажатие tab в третий раз перемещает курсор в конец инструкции.
надеюсь, вы найдете этот способ полезным тоже.
Я могу это сделать, но он не отображается в предложении типа. Попробуйте набрать:
List<String> list = new Ar
нажмите Ctrl-Space и просто примите первое предложение. Он завершается до ArrayList<String>()
для меня (это использование дистрибутива SpringSource Tool Suite Eclipse).