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

Почему 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.

4b9b3361

Ответ 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 для удобства:

введите описание изображения здесь