Как я могу улучшить завершение кода затмения? - PullRequest
0 голосов
/ 22 декабря 2010

Eclipse не находит правильную переменную для завершения кода, как показано ниже.

int i = 0;
f(xyz);    // f takes an int but eclipse won't fill it with i.

1 Ответ

1 голос
/ 22 декабря 2010

В разделе «Окно»> «Предпочтения»> «Java»> «Редактор»> «Помощник по содержимому» убедитесь, что установлен параметр «Заполнить аргументы метода и показать аргументы догадки» и выбран «Вставить лучшие угаданные аргументы».


Редактировать:

Я пробовал это в своем Eclipse (Версия: Helios Service Release 1 - Build id: 20100917-0705):

public class BestGuessedParameter {
    static int xyz = 1;
    static void f(final int xyz) {
    }
    public static void main(final String[] args) {
        final int i = 0;
        f/*cursor here*/
    }
}

Сразу после того, как я набрал f, я нажал пробел и выбрал f(xyz), Eclipse предоставил f(i) с выделенным i и во всплывающем меню i (выделенным), xyz0.i было значением по умолчанию.

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

...