Intellij - 为不可变对象创建自定义setter

时间:2017-07-09 10:39:37

标签: java intellij-idea immutability setter

我试图在Intellij中编写一个setter模板,它将生成传统的不可变setter,即在设置成员时创建并返回新对象实例的setter。 e.g。

Person setName(String name) {
  return new Person(age, name);
}

以前有人来过这里吗?

2 个答案:

答案 0 :(得分:3)

无答案:不要将此称为二传手。

按照惯例,setter会更改您调用它的实例。

所以相反称它为 createCloneWithName()或类似的东西。

我想你可能能够为IntelliJ提供特殊模板以用于这种克隆方法。但是不要为了你的目的而试图滥用二传手。

答案 1 :(得分:0)

在设置 - >编辑器 - >实时模板下,您可以将实时模板与模板一起使用,例如:

$TYPE$ set$NAME$($IN_TYPE$ $PARAM$) {
    return new $TYPE$($PARAM$);
}

使用表达式“camelCase(NAME)”定义PARAM的位置 和TYPE使用表达式“className()”

定义