IDEA Android Studio toString 模板设置

[TOC]

为什么要更改 toString 格式

在实际开发中,经常需要对 entity 实例调试的时候重写 toString 方法来输出日志
而IDEA 默认的模板不是 json 格式化的,日志调试起来不是很方便

更改方法

打开任意一个 java 类
按组合键

  • win or linux alt + ins
  • mac cmd + n
IDEA Android Studio toString 模板设置_第1张图片
image.png

选择 toString() 出现弹窗,选择右上角的 Settings

IDEA Android Studio toString 模板设置_第2张图片
image.png

切换选项卡到 Templates,并点击左侧的 +

image.png

出现窗口

IDEA Android Studio toString 模板设置_第3张图片
image.png

输入模板名称 String toJsonString 点击ok

左侧分栏勾选 String toJsonString,在右侧输入内容为

public java.lang.String toString() {
#if ( $members.size() > 0 )
#set ( $i = 0 )
    return "\"$classname\": {" +
#foreach( $member in $members )
#if ( $i == 0 )
    "##
#else
    ", ##
#end
#if ( $member.objectArray )
#if ($java_version < 5)
\"$member.name\":" + ($member.accessor == null ? null : java.util.Arrays.asList($member.accessor)) +
#else
\"$member.name\":" + java.util.Arrays.toString($member.accessor) +
#end
#elseif ( $member.primitiveArray && $java_version >= 5)
\"$member.name\":" + java.util.Arrays.toString($member.accessor) +
#elseif ( $member.string )
\"$member.name\": \"" + $member.accessor + '\"' +
#else
\"$member.name\": \"" + $member.accessor +
#end
#set ( $i = $i + 1 )
#end
    '}';
#else
    return "\"$classname\":{}";
#end
}

然后确认后选择模板

IDEA Android Studio toString 模板设置_第4张图片
image.png

这样 toString 的结果就是Json了

额外配置

String toJsonString and super.toString()

public java.lang.String toString() {
#if ( $members.size() > 0 )
#set ( $i = 0 )
    return "\"$classname\":{" +
#foreach( $member in $members )
#if ( $i == 0 )
    "##
#else
    ", ##
#end
#if ( $member.objectArray )
#if ($java_version < 5)
\"$member.name\":" + ($member.accessor == null ? null : java.util.Arrays.asList($member.accessor)) +
#else
\"$member.name\":" + java.util.Arrays.toString($member.accessor) +
#end
#elseif ( $member.primitiveArray && $java_version >= 5)
\"$member.name\":" + java.util.Arrays.toString($member.accessor) +
#elseif ( $member.string )
$member.name='" + $member.accessor + '\'' +
#else
\"$member.name\":" + $member.accessor +
#end
#set ( $i = $i + 1 )
#end
   #if ( $class.hasSuper )
   "} " + super.toString();
   #else
   '}';
   #end
#else
   #if ( $class.hasSuper )
   return "\"$classname\":{} " + super.toString();
   #else
   return "\"$classname\":{}";
   #end
#end
}

你可能感兴趣的:(IDEA Android Studio toString 模板设置)