【toString】idea中toString()方法设置模板输出为json格式

方法一:

自定义toString()的模板:

public java.lang.String toString() {
return "{"
#set ($i = 0)
#foreach ($member in $members)#if ($i == 0)
+"#####
#else
+",####
#end#if ($member.string || $member.date)
\"$member.name\":\""
#else
\"$member.name\":"
#end#if ($member.primitiveArray || $member.objectArray)
+java.util.Arrays.toString($member.name)
#elseif ($member.string || $member.date)
+$member.accessor+'\"'
#else
+$member.accessor
#end#set ($i = $i + 1)
#end
#if ( $class.hasSuper )
  +"},\"super-$classname\":" +super.toString()+"}";
   #else
   +"}";
#end
}

测试类为:

private String name = "Tom";

private int age = 18;

@Override
public String toString() {
    return "{" + "\"name\":\"" + name + '\"' + ",\"age\":" + age + "}";
}

测试结果:

{"name":"Tom","age":18}

方法二:

同样右击idea或者Alt+insert,点击Generate,点击toString(),选择上面

选择下拉框

使用选中的这个,生成的代码

@Override
public String toString() {
   return new ToStringBuilder(this).append("name", name).appen ("age", age).toString();}

然后我们可以做一些设置:

@Override
public String toString() {
    return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).append("name",         
           name).append("age", age).toString();}

当然我们也可以添加其他的格式。

ps:测了两个toString()的效率,在字段为8个,分别打印10次、100次、1000次的时候,明显第一种打印的快一点。


版权声明:本文为iaoyou1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。