博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio IDEA toString模板设置-增加json的toString效果
阅读量:3564 次
发布时间:2019-05-20

本文共 2407 字,大约阅读时间需要 8 分钟。

前言

当我们在实际开发中,经常需要对后台返回的数据 entity 实例进行调试的时候重写toString 方法来输出日志而我们的编辑器Studio(IDEA) 默认的模板不是 json 格式化的,于是在日志调试时查看起来不是很方便,于是乎有了这篇文章的存在

将自动生成的(重写)toString输出模板更改为Json形式

操作步骤

  • 打开一个java类(javabean类最好)
  • AndroidStudio导航栏 ——> Code ——> Generate ——> toString 或者快捷键 alt + ins —> toString

在这里插入图片描述

  1. 点击 toString() 出现该类中需要转换的变量的 弹窗,选择右上角的 Settings

    在这里插入图片描述

  2. 切换标签到Templates 并点击 + 号新建一个模板

    在这里插入图片描述

  3. 点击 + 号后弹窗,输入新模板的名称(String toJsonString)点击 OK

    在这里插入图片描述

  4. 创建完模板后在左侧栏目点击新创建的模板名称将以下代码输入到右侧

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}

输入之后应用确定即可

  1. 确认选择要使用的模板-选择刚创建好的 String toJsonString 即可
    在这里插入图片描述

额外部分知识

  1. 在编写的过程中你可能会发现原有的 String concat(+)String concat(+) and super.toString() 两个的,不用担心它来了,按照创建 String toJsongString 的步骤再来一遍创建一个 String toJsongString 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}
  1. 新大陆的出现 此时细心的你去用 String concat(+)String toJsonString 去对比你会发现一片新大陆,这难道不是一样的吗? 其实实际上来说是一样的代码不同之处在于转义字符的方向不同,后者将输出格式统一转换成一个json格式罢了

转载地址:http://qhvrj.baihongyu.com/

你可能感兴趣的文章
Hdu 1401 Fire Net
查看>>
Hdu 2444 The Accomodation of Students
查看>>
Hdu 1803 Courses 二分图匹配模板题
查看>>
UVa 1601 The Morning after Halloween 双向bfs
查看>>
Hdu 2819 Swap 匈牙利算法
查看>>
Hdu 2389 Rain on your Parade hk算法
查看>>
hdu 1281 棋盘游戏
查看>>
Hdu 4185 Oil Skimming 匈牙利算法
查看>>
蓝桥杯 历届试题 翻硬币 贪心+模拟
查看>>
Uva 1152 4 Values whose Sum is 0 二分
查看>>
poj 3020 Antenna Placement 匈牙利算法
查看>>
poj 1463 Strategic Game 匈牙利算法
查看>>
poj 1422 Air Raid 匈牙利算法
查看>>
poj 2594 Treasure Exploration 匈牙利算法+floyd缩点
查看>>
Hdu 3829 Cat VS Dog
查看>>
历届试题 连号区间数
查看>>
poj 2112 Optimal Milking 二分图多重匹配+floyd+二分
查看>>
poj 3189 Steady Cow Assignment 二分图多重匹配+二分
查看>>
UVA - 437 The Tower of Babylon DAG上的动态规划
查看>>
历届试题 分糖果 模拟
查看>>