Intellij IDEでは、コードを生成するための独自のテンプレートを書き込むことができます。私はと同等のメソッドを生成するテンプレートをwritteしたいと思います。私はこれが等しいで書かたい
(apache.commons.languageからStringUtils.IsNotEmptyを使用して)Intellijテンプレートジェネレータの構文
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
POJO pojo = (POJO) o;
if(StringUtils.IsNotEmpty(stringAtt) ? !stringAtt.equals(pojo.stringAtt) : StringUtils.IsNotEmpty(pojo.stringAtt)) return false;
return true;
}
: 目標はヌルと、このような空の文字列の間distiguishいないequalsメソッドを持つことです私が使用しているすべてのPOJOのコードを生成することができます。
問題は、intellijテンプレートの生成に使用される言語とトークンの構文を完全に理解できていないことです。
#parse("equalsHelper.vm")
public boolean equals(##
#if ($settings.generateFinalParameters)
final ##
#end
Object $paramName){
#addEqualsPrologue()
#if ($fields.size() > 0)
#addClassInstance()
#foreach($field in $fields)
#addFieldComparison($field)
#end
#end
return true;
}
##
#macro(addFieldComparison $field)
#if ($field.notNull)
if(!${field.accessor}.equals(${classInstanceName}.$field.accessor))return false;
#else
if($field.accessor != null ? !${field.accessor}.equals(${classInstanceName}.$field.accessor) : ${classInstanceName}.$field.accessor != null)return false;
#end
#end
##
私はIntellijのドキュメントページでそれを探しましたが、その構文についての説明は見つかりませんでした。
- 誰かが私に良い例を示したり、ドキュメンテーションWebページを指しているので、私はそれを行う方法を学ぶことができますか?
- それともこれはので、私は自分自身
おかげでそれを学ぶことができているどの言語。
良い質問。ここをクリックしてください:https://www.jetbrains.com/help/idea/file-and-code-templates.html –
ありがとうございます@TimBiegeleisen、私はドキュメントでそれを逃した。言語はVTL – alvaro