mike-neckのブログ

Java or Groovy or Swift or Golang

IntelliJ IDEAでStringJoinerを使ったtoString()のテンプレートを作った

表記の通り。

StringJoinertoString()を作るテンプレートが欲しかったので作った。

テンプレートは次のような感じ

public String toString() {
#set($i = 0)
#foreach($m in $members)
#if($i == 0)
return new StringJoiner(", ", "$classname:[", "]")
#end    
#if(!$m.modifierStatic)
#if($m.primitiveArray || $m.objectArray)
.add("$m.name: [java.util.Arrays.toString($m.name)]")
#else
.add("$m.name: [" + ($m.name == null ? "null" : $m.accessor) + "]")
#end
#end
#set($i = $i + 1)
#end
.toString();
}

テンプレート自体は

ctrl + NtoString → Templateの横にあるSettingsボタン → Templatesタグ → +ボタン

から作ることができる。

テンプレートで使えるプロパティなどは他のテンプレートを真似した。