2

我有一堂有大约 20 个属性的课程。如果属性不为空,setter 应该抛出异常。像下面的东西

public void setLastname(String lastname) {
 if(this.lastname!=null)
    throw new IlegalArgumentException("lastname already set");
 this.lastname=lastname;
}

如何在 IntelliJ 中自动生成这样的设置器?

4

3 回答 3

3

IntelliJ IDEA 没有办法自定义 getter/setter 模板,投票支持这个请求

一种解决方法是创建一个Surround 实时模板。这样您就可以键入变量,例如lastname,然后选择它并调用将选择转换为的环绕模板

public void setLastname(String lastname) {
 if(this.lastname!=null)
    throw new IlegalArgumentException("lastname already set");
 this.lastname=lastname;
}

有关详细信息,请参阅文档

于 2013-08-16T21:16:45.373 回答
3

您可以创建一个实时模板:

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)

于 2013-08-16T21:18:31.297 回答
0

我创建了一个模板来生成通过一些自定义生成的设置器。我的 setter 函数首先检查参数是否不为空,然后仅设置为输出。您可以在 intellij 中生成类似的模板。在生成设置器时,单击 [...] 按钮并创建一个新的自定义模板。仅供参考,我放下我的模板要点链接。

用于在 IntelliJ Idea 中生成不为空检查的 setter 的模板

于 2018-08-10T10:33:22.563 回答