Пользовательский шаблон eclipse, чтобы заставить setter вернуть этот объект?

Мне нужен настраиваемый шаблон set eclipse для возврата этого объекта, как этот

public Person setName(String name){
    this.name=name;
    return this;
}

но Java- > Стиль кода- > Шаблоны позволяют мне настраивать часть тела установщика, а не определение метода. Есть ли способ сделать это?

Ответ 1

Боюсь, я не могу предложить решение, позволяющее вам изменить шаблон Eclipse для этого, но могу ли я предложить вам переосмыслить, что вы здесь делаете?

Если вы проверите спецификацию JavaBeans, вы увидите, что, когда вы определяете свои методы таким образом, они больше не являются действительными установщиками свойств. У сеттеров должен быть тип возврата void; вы можете сожалеть о создании этих нестандартных beans в конечном итоге. Например, попробуйте использовать java.beans.Introspector для сбора информации bean для вашего класса, и вы увидите, что ваши настройки настройки свойств не найдены.

Я знаю, что хорошо иметь возможность быстро инициализировать ваш beans с помощью цепочечных вызовов, например:

new Person().setName("John Smith").setDateOfBirth(...).setAddress(...)

Могу ли я предложить в качестве альтернативы использовать стандартные сеттеры (которые возвращают void) и вместо этого внедряют такие методы построения, как:

public Person withName(String name) {
    this.setName(name);
    return this;
}

Ваша быстрая однострочная конструкция выглядит следующим образом:

new Person().withName("John Smith").withDateOfBirth(...).withAddress(...)

Я вижу, что префикс "с" тоже хорошо читается.

Ответ 2

Вы можете использовать Fast Code Eclipse Plugin, чтобы сделать это довольно легко.

Ответ 3

Насколько я могу судить, все, что вы можете сделать, это отредактировать шаблон "Window- > Preferences- > Java- > Code Style- > Code- > Setter body" в Java так:

${field} = ${param};
return this;

В то время как это не будет автоматически устанавливать для вас тип возвращаемого значения, Eclipse бросает на вас красное squiggly для каждого из ваших сеттеров, после чего вы можете навести курсор мыши и выбрать "Изменить тип возвращаемого метода на" yourTypeHere ".