首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用IntelliJ代替级联的toString方法的Idea模板

用IntelliJ代替级联的toString方法的Idea模板
EN

Stack Overflow用户
提问于 2016-03-11 05:45:01
回答 1查看 5.1K关注 0票数 11

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

例如,我有以下对象:

代码语言:javascript
运行
复制
public class Foo {
    private int id;
    private String name;
    private List<String> values;
}

如果在默认情况下为所有字段生成toString,Idea将生成:

代码语言:javascript
运行
复制
@Override
public String toString() {
    return "Foo{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", values=" + values +
            '}';
}

但我想提出以下几点:

代码语言:javascript
运行
复制
@Override
public String toString() {
    return String.format("Foo(id=%d, name=%s, values=%s)", id, name, values);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-10 13:28:38

对于那些还在寻找这个的人来说:

代码语言:javascript
运行
复制
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的内容。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35933114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档