我想使用toString
而不是连接String.format
等为StringBuffer
方法创建IntelliJ Idea模板。
例如,我有以下对象:
public class Foo {
private int id;
private String name;
private List<String> values;
}
如果我默认为所有字段生成toString
,则会生成:
@Override
public String toString() {
return "Foo{" +
"id=" + id +
", name='" + name + '\'' +
", values=" + values +
'}';
}
但我想生成以下内容:
@Override
public String toString() {
return String.format("Foo(id=%d, name=%s, values=%s)", id, name, values);
}
答案 0 :(得分:13)
对于仍在寻找此事的人:
public java.lang.String toString() {
return String.format(
"$classname (##
#set ($i = 0)
#foreach ($member in $members)
#if ($i != 0)##
, ##
#end
$member.name=%s##
#set ($i = $i + 1)
#end
)",##
#set ($i = 0)
#foreach ($member in $members)
#if ($i != 0)
,##
#end
#if ($member.primitiveArray || $member.objectArray)
java.util.Arrays.toString(this.$member.name)##
#else
this.$member.name ##
#end
#set ($i = $i + 1)
#end
);
}
改编自this template。