首页 > 系统 > Android > 正文

IDEA(Android Studio) 以JSON格式覆盖toString() (非StringBuilder)

2019-11-06 06:43:17
字体:
来源:转载
供稿:网友

今天尝试着将实体存进SharedPReference中的时候遇到了存取格式的问题,考虑过serializable接口,又想到了JSON格式的对象存取,于是在网上搜索了相关的方法后发现几乎全是基于StringBuilder实现的(虽然“+”在字节码上也是StringBuilder实现),但是有轻微强迫症的我试图尽可能的去掉IDE给我的黄色警告,于是进一步在automationrhapsody找到了符合个人理念的实现方式:

简单的JSON 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.array )/"$member.name/":" + java.util.Arrays.toString($member.accessor)#elseif ( $member.string || $member.primitive || $member.numeric || $member.boolean || $member.enum )/"$member.name/":/"" + $member.accessor + "/""#else/"$member.name/":" + $member.accessor#end#set ( $i = $i + 1 )#end+ "}}";#elsereturn "{$classname}";#end}会生成如下格式的代码:

@Override    public String toString() {        return "{className:{"                + "/"field1/":/"" + field1+ "/""                + ", /"field2/":/"" + field2+ "/""                + "}}";    }如果不想生成className的话修改上面第四行和倒数第五行就行了。

原文还提到了包含super.toString()的实现,这里就不做展示了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表