Java IntelliJ Idea模板用于使用String.format而不是串联的toString方法

Java IntelliJ Idea模板用于使用String.format而不是串联的toString方法,java,intellij-idea,Java,Intellij Idea,我想使用String.format而不是串联、StringBuffer等为toString方法创建IntelliJ Idea模板 例如,我有以下对象: public class Foo { private int id; private String name; private List<String> values; } 但我想生成以下内容: @Override public String toString() { return String.fo

我想使用
String.format
而不是串联、
StringBuffer
等为
toString
方法创建IntelliJ Idea模板

例如,我有以下对象:

public class Foo {
    private int id;
    private String name;
    private List<String> values;
}
但我想生成以下内容:

@Override
public String toString() {
    return String.format("Foo(id=%d, name=%s, values=%s)", id, name, values);
}

对于仍在寻找的任何人:

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
);
}
改编自

编辑

对于那些想知道这是什么东西的人(我想知道你是如何在这里结束tbh的,因为问题非常具体xD):这是一个用于生成
toString
方法的IntelliJ模板

代码生成帮助您根据预设模板生成代码构造和重复元素,而不是手工编写所有内容


请阅读更多有关toString的详细信息。

太棒了。谢谢你@Linuslabo@linuslabo我们如何处理这些模板?@anon58192932您可以在类中生成
toString
方法,该方法使用
String.format
(就像问题所要求的那样)。看一看。这个模板在IntelliJ中属于哪里?@Basil看一看上面评论中指向文档的链接。你应该小心这一点。尽管String.format更具可读性,但与老式的+连接相比,它的性能非常差。Java 8及更高版本的更新方法是使用,如类似问题的中所示。
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
);
}