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 это невозможно сделать автоматически без плагина, и я не знаю плагина, который это делает.
Я использую шаблон для одновременного создания артефактов, но я не придерживаюсь одного и того же пути. Я не уверен, что решение шаблона будет работать, если геттер или сеттер уже существуют, поскольку я не убедитесь, что вы можете проверить наличие метода и принять на него основанные на шаблоне решения. Может быть, вы можете.