我有一堂有大约 20 个属性的课程。如果属性不为空,setter 应该抛出异常。像下面的东西
public void setLastname(String lastname) {
if(this.lastname!=null)
throw new IlegalArgumentException("lastname already set");
this.lastname=lastname;
}
如何在 IntelliJ 中自动生成这样的设置器?
我有一堂有大约 20 个属性的课程。如果属性不为空,setter 应该抛出异常。像下面的东西
public void setLastname(String lastname) {
if(this.lastname!=null)
throw new IlegalArgumentException("lastname already set");
this.lastname=lastname;
}
如何在 IntelliJ 中自动生成这样的设置器?
IntelliJ IDEA 没有办法自定义 getter/setter 模板,投票支持这个请求。
一种解决方法是创建一个Surround 实时模板。这样您就可以键入变量,例如lastname
,然后选择它并调用将选择转换为的环绕模板
public void setLastname(String lastname) {
if(this.lastname!=null)
throw new IlegalArgumentException("lastname already set");
this.lastname=lastname;
}
有关详细信息,请参阅文档。
您可以创建一个实时模板:
http://www.jetbrains.com/idea/webhelp/creating-and-editing-live-templates.html
这应该像:
public void set$CAP_SELECTION$(String $SELECTION$) {
if(this.$SELECTION$!=null)
throw new IlegalArgumentException("$SELECTION$already set");
this.$SELECTION$=$SELECTION$;
}
你只需写:
姓氏,选择测试并使用模板
CAP_SELECTION 是一种大写的变量($SELECTION)
我创建了一个模板来生成通过一些自定义生成的设置器。我的 setter 函数首先检查参数是否不为空,然后仅设置为输出。您可以在 intellij 中生成类似的模板。在生成设置器时,单击 [...] 按钮并创建一个新的自定义模板。仅供参考,我放下我的模板要点链接。