Eclipse: как автоматически генерировать getter при добавлении поля?

Я использую TDD и имею очень типичный шаблон кодирования, используя Eclipse для автоматического создания методов и полей, когда я кодирую unit test. Например:

  • введите имя метода, который не существует, например:

    myObj.setValue(someValue);

  • Нажмите на маленькую красную метку ошибки в среде IDE, чтобы создать метод setValue.

  • Введите внутри метода setValue:

    public void setValue(String value) { this.value = value; }

  • Нажмите красную метку ошибки, чтобы автоматически создать частное поле (в данном случае это "значение" );

Итак, в этот момент я бы хотел, чтобы Eclipse автоматически создавал метод getter, не делая этого, используя меню source → generate getters and seters.

Я увидел этот вопрос: Как заставить Eclipse предлагать вам создать геттер и сеттер, если он не делает это автоматически, что, по-видимому, означает, что Eclipse делает это, но я не мог найти, где его настроить.

Есть ли способ настроить Eclipse для автоматического добавления setter/getters при добавлении новой частной переменной?

UPDATE: Чтобы уточнить, я искал что-то вроде того, что я видел в документации Spring Roo. Если вы посмотрите раздел "Как это работает", в нем описывается, как фреймворк автоматически добавляет дополнительные методы в ваш класс, всякий раз, когда вы добавляете приватную переменную. (Мое предпочтение заключается не в том, чтобы запускать другой процесс, как этот, однако, а также не для того, чтобы получить все трещины, которые, по-видимому, добавляются). Я надеялся, что у Eclipse что-то похожее.

Ответ 1

Когда вы перемещаете указатель мыши над именем переменной, вы можете выбрать "Создать getter и setter для varname" во всплывающем меню.

Или вы можете создать себе ярлык для этого. Настройки → Общие → Ключи. В окне поиска вы вводите "getter", а затем вы его найдете.

Ответ 2

Попробуйте это, он работает как масло

Goto Source --> Generate Getter and Setter Methods

Either select one instance varible, or all ---> Ok

Ответ 3

Hmm... dunno, если это то, что вы ищете, но если я создаю поле в классе, есть предупреждение, что поле не используется. Если я нажимаю на предупреждающий знак, появляется опция генерации getter и setter для поля:

enter image description here

Ответ 4

Я делаю несколько иначе.

  • Сначала создайте переменную: (скажем private int threadsInPool = 3).
  • Поместите курсор на имя переменной (скажем threadsInPool)
  • Применить этот ярлык: Alt + Shift + s, r ( Нажмите последний r после небольшая задержка)
  • Просто нажмите Enter, когда появится диалоговое окно Generate Getters and Setters и Voila!

РЕДАКТИРОВАТЬ: Вы также можете использовать Lombok аннотации:

@Getter @Setter private String value;

Ответ 5

Я не думаю, что этот вопрос подразумевает, что, поскольку все ответы дали ручное решение.

AFAIK это невозможно сделать автоматически без плагина, и я не знаю плагина, который это делает.

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