2015-12-16 2 views
1

Я счастливый пользователь затмения в течение некоторого времени. Но есть одна вещь, что ошибки мне немного:Параметры отображаются как arg0, но только в первый раз?

Когда я начала затмения Марс утром и начать печатать, например:

list.add 

(список является ArrayList)

Тогда параметры являются отображаются как arg0 и arg1. Это происходит только в первый раз. Причина, когда я снова набираю «list.add», отображаются имена параметров, поэтому больше нет arg0 и arg1.

Но когда я перехожу к другому классу и использую его, набрав hash.put, параметры arg0 снова. Но когда я попробую это во второй раз, имена параметров будут правильно отображены, больше нет arg0.

У меня есть jdk (1,8 60) с настроенным и выбранным источником (установлены jres и для проекта).

Первая попытка, вы получите arg0:

first with arg0

Второй попробовать имена Param:

second with param names

Solved:

(благодаря Франческо Foresti для указания меня в правильном направлении)

Найденный! Щелкните правой кнопкой мыши «jre системная библиотека», свойства, выберите «выполнение env» radobutton, нажмите кнопку «окружение», выберите «javase-18» и установите флажок для jdk в списке «совместимый jre». Теперь у rt.jar есть исходное вложение, а не только вложение javadoc. И он сохраняет это даже после проекта обновления maven.

+1

И вы хотите, чтобы нас угадали, основываясь на коде, который вы не показываете? – Stultuske

+2

Я не думаю, что у него есть код для показа ... Я считаю, что он имеет в виду автозаполнение/предложения Eclipse. Может быть, он может опубликовать скриншот, чтобы сделать смысл clearer – dagandlerx

+0

Я думаю, вы должны перейти в следующее меню, _Window -> Настройки -> Java -> Редактор -> Content assist_ и посмотреть, есть ли опция ** Заполнить метод аргументами и показать угаданные аргументы * * выбран для того, что вы видите. –

ответ

2

Wild угадывания здесь, так что принять этот ответ с зерном соли ..

Вполне возможно, что, в первый раз вы просите для автозаполнения Eclipse, заполняет имена параметров, используя декомпилированные классы (исходя из вашего проекта зависимостей), следовательно, вы видите arg0 arg1 и т. д. В то же время Eclipse запускает запрос на загрузку исходного кода (возможно, Maven, я не знаю), поэтому в следующий раз, когда вы захотите автозаполнения, вы увидите настоящие имена параметров. Также кажется, что этот «кеш автозаполнения» имеет ограниченный срок службы, поэтому, когда вы открываете Eclipse на следующее утро, он начинается снова и снова. Я бы посоветовал вам попытаться вставить конфигурацию автозаполнения Eclipse, если вы хотите изменить это поведение.

+0

Эта проблема меня тоже подслушивала, и я придумал то же объяснение для себя. Я также догадываюсь, однако это звучит разумно. – qqilihq

+0

Хм, странно, я использую maven и имею системную библиотеку JRE в структуре проводника пакета, я нажимаю правой кнопкой мыши и устанавливаю «jre system library» в свой jdk. Теперь arg0 не отображаются в первый раз. Но, похоже, когда я делаю проект «maven> update», «системная библиотека jre» сбрасывается и снова указывает на jre. И arg0 снова появляется.Это может быть проблемой maven. Я буду искать немного больше. –

+1

Нашел! Щелкните правой кнопкой мыши «jre системная библиотека», свойства, выберите «выполнение env» radobutton, нажмите кнопку «окружение», выберите «javase-18» и установите флажок для jdk в списке «совместимый jre». Теперь у rt.jar есть исходное вложение, а не только вложение javadoc. И он сохраняет это даже после проекта обновления maven. –

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