IntelliJ Live模板:修改后的setters模板

时间:2010-01-27 14:47:43

标签: java intellij-idea code-templates

是否有人知道如何在intellij中设置实时模板以执行专门的setter - 我正在使用v5,但我很乐意接受最近发布的知识) -

我的首要需求是firePropertyChange setter:

public final static String $PROPERTY$ = "$property$"
public void set$Property$($TYPE$ $property$) {
    Object oldValue = this.$property$;
    this.$property$ = $property$;
    firePropertyChange($PROPERTY$, oldValue, $property$);
}

我有一个半工作版本,使用如下定义的变量生成实现: $ property $ - > completeSmart() $ PROPERTY $ - > completeSmart()

我的第二个需求是一个构建器样式setter,它调用常规setter然后在set之后返回:

public $THIS_TYPE$ with$Property$($TYPE$ $property$) {
    set$Property$($property$); 
    return this;
}

对于这个我没有什么好的东西:我还要输入很多东西!

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

像这样的东西

private $TYPE$ $NAME$;
public $THIS$ set$BNAME$($TYPE$ $NAME$) {
    this.$NAME$ = $NAME$;
    return this;
}

,其中

Type = complete()
NAME = suggestVariableName()
BNAME = capitalize(NAME)
THIS = className()

唯一的问题是className不能在嵌套类中工作,因为它将返回“Outer $ Inner”但它应该工作得足够好。