美文网首页
IDEA Android Studio toString 模板设

IDEA Android Studio toString 模板设

作者: 木猫尾巴 | 来源:发表于2017-06-08 23:24 被阅读384次

    [TOC]

    为什么要更改 toString 格式

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

    更改方法

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

    • win or linux alt + ins
    • mac cmd + n
    image.png

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

    image.png

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

    image.png

    出现窗口

    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
    }
    

    然后确认后选择模板

    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 模板设

          本文链接:https://www.haomeiwen.com/subject/tvqxqxtx.html