Intellij 12.1中的自定义setter

时间:2013-08-16 21:00:53

标签: java intellij-idea

我有一个有20个属性的课程。如果属性不为null,则setter应抛出异常。像下面的东西

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

如何在IntelliJ中自动生成此类设置器?

3 个答案:

答案 0 :(得分:3)

IntelliJ IDEA无法自定义getter / setter模板vote for this request

解决方法是创建Surround live template。通过这种方式,您可以键入变量,例如lastname,然后选择它并调用将选区转换为

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

有关详细信息,请参阅documentation

答案 1 :(得分: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)

答案 2 :(得分:0)

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

Template for generating setter with checking not null in IntelliJ Idea