Почему eclipse генерирует имена аргументов как arg0, arg1, arg2.... для методов?
Когда я пытаюсь получить доступ к некоторому методу класса; eclipse получает этот метод, но аргументы внутри этого метода заменяются arg0, arg1, arg2...
Пример: -
Предположим, что у меня есть этот метод в некотором классе с именем ReadFile.java
@Override
public int readXXX(int start, int end, String xxx) throws IOException {
return 0;
}
Когда я пытаюсь получить доступ к этому методу из экземпляра класса, он показывает мне следующее:
readFile.readXXX(arg0, arg1, arg2);
Трудно определить, что я должен передать в аргументе. То же самое происходит и для java-методов. т.е. когда я реализую интерфейс, весь метод под ним будет сгенерирован, но аргументы в этих методах будут arg0, arg1.....
Есть ли какой-либо параметр, который я могу предотвратить?
Я использую Eclipse Galelio.
Ответы
Ответ 1
Eclipse не может выработать аргументы, потому что не может найти вложения источника или javadoc.
Убедитесь, что ваш источник подключен.
Чтобы проверить, щелкните по вызову метода readXXX
и нажмите F3, который должен открыть объявление метода. Если источник не подключен, Eclipse скажет "Источник не найден" и позволит вам "Прикрепить источник...".
Ответ 2
Проблема в том, что в ваших файлах классов отсутствует встроенная в них отладочная информация. JDT не восстанавливает исходные файлы или javadoc для зависимостей при создании AST для вашего проекта, поэтому у него нет представления о том, что такое имя параметра, даже если вы можете открыть класс и четко видеть, что являются именами методов.
Чтобы исправить это, вам нужно перекомпилировать ваши файлы классов с включенной информацией об отладке, что делает файл класса значительно большим, но если вы не разрабатываете устройства с ограничением памяти, вы должны быть в порядке.
Ответ 3
Любой, у кого есть такая же проблема, попробуйте выполнить проект > Очистить, это приведет к удалению старых файлов классов, и Eclipse перекомпилирует их в режиме отладки на этот раз. Работал для меня в Indigo 3.7.2
Ответ 4
Я решил это, выбрав предпочтения
Java/Content Assist
На этой странице в разделе "Сортировка и фильтрация" я снял флажок "Скрыть предложения, невидимые в контексте вызова", вместо того, чтобы видеть (arg0, arg1, arg2) и т.д. В автозаполнении я вижу (каталог, schemaPattern, tableNamePattern...)
Я использую Spring Tools Suite 3.7.2, который работает на платформе Eclipse Mars 4.5.1.
Ответ 5
для таких, как я, которые пытались применить предложения одного из наших коллег и, к сожалению, не сработали, попробуйте проверить параметр "Добавить переменные атрибутов в сгенерированные файлы классов (используемые отладчиком)" внутри Window → Настройки → Java + Компилятор.
Как только вы это сделаете, попробуйте снова создать проект.
Приветствия.
Ответ 6
Эта ссылка помогла мне решить эту проблему.
1) Щелкните правой кнопкой мыши на android.jar и выберите "Свойства".
![введите описание изображения здесь]()
2) Выберите Java Source Attachment. Введите местоположение исходного каталога (вы также можете использовать внешнюю папку... для перехода к каталогу) и нажмите "Применить".
![введите описание изображения здесь]()
Имена кодов соответствуют следующим номерам версий, а также уровням API и выпускам NDK для удобства:
![введите описание изображения здесь]()