方法一:
自定义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次的时候,明显第一种打印的快一点。