ToStringBuilder类的作用是协助Object.toString()方法实现字符串输出;
这个类是一个良好和一致的对于toString()方法去输出任何类或者对象,这个类旨在简化处理过程:
  • 允许字段名
  • 处理所有的类型
  • 处理null类型
  • 输出数组和多维数组
  • 允许为对象和集合控制详细级别
  • 处理类的层次结构

1.使用此类编写的代码如下:

package common.lang;import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;public class User {private int age;private String username;public User(int age, String username) {this.age = age;this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Overridepublic String toString() {return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).append("age", age).append("username", username).toString();}}
ToStringBuilder类协助PO类输出toString()字符串,我们也可以通过ToStringStyle类指定我们想要输出的字符串格式;
上面的toString方法将会输出:{"age":12,"username":"yaomy"}
添加父类的toString方法,使用appendSuper(java.lang.String)方法;
将另外一个对象的toString添加到当前使用 appendToString(java.lang.String)方法;
另外有一种方法可以利用反射来确定要处理的字段;因为这些字段通常是私有的,这样的方法有reflectionToString,
使用 AccessibleObject.setAccessible去更改字段的可见性,这将在安全管理器下失败,除非正确设置适当的权限,
这样在测试管理器下面会更慢;

这种方法的典型调用如下:

 public String toString() {return ToStringBuilder.reflectionToString(this);}

还可以使用生成器调用第三方对象:

System.out.println("An object: " + ToStringBuilder.reflectionToString(anObject));

确切的日期格式是根据构造函数中传入的ToStringStyle样式;

(二十三)Java工具类ToStringBuilder方法详解相关推荐

  1. Java中的main()方法详解

    源文作者:leizhimin    源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...

  2. 使用Java操作文本文件的方法详解

    使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而 ...

  3. Android之TelephonyManager类的方法详解

    林计钦-JAVA java技术群:127834248 博客园   首页   社区   新随笔   联系   订阅   管理 随笔-105  评论-24  文章-0  trackbacks-0 Andr ...

  4. Java Thread的interrupt方法详解

    Java Thread的interrupt方法详解 一.概述 interrupt方法的目的是给线程发出中断信号,但是不保证线程真的会中断 中断一个线程只是为了引起该线程的注意,被中断线程可以决定如何应 ...

  5. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  6. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  7. python元组读取到列表_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  8. java semaphore 等待时间_一个java同步工具类Semaphore的详解

    Semaphore是java并发包里面的一个工具类,我们限制可以访问某些资源的线程数目就可以使用Semaphore了.这篇文章将对Semaphore的概念和使用进行一个详解. 一.概念理解 官方是这样 ...

  9. java dateutil 获取时间戳_java DateUtil工具类时间戳类型转换详解

    本文实例为大家分享了DateUtil工具类时间戳类型转换的具体代码,供大家参考,具体内容如下 package com.sinosoft.media.sms.util; import java.text ...

  10. java barrier_Java并发类CyclicBarrier方法详解

    Cyclic是周期的意思,Barrier是关卡的意思.CyclicBarrier不仅有CountDownLatch的功能,还可以实现屏障等待,即阶段性同步.因此适用于,需要循环地实现线程一起做任务的目 ...

最新文章

  1. 私房库视频学习笔记-小清新BBS系统开发技术归纳
  2. python 练习题-去重排序与字符串分割
  3. 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
  4. 基于深度学习的病理_组织病理学的深度学习(第二部分)
  5. .NET 6新特性试用 | System.Text.Json序列化代码自动生成
  6. Python中文编码 - Python零基础入门教程
  7. 构造方法与对象的创建 java 1614780813
  8. 超声波的四个特性_超声波传感器,超声波的特性
  9. android反编译之获得res下的xml配置文件及图片等资源
  10. 用python画图代码-常用激活函数的python画图代码
  11. 交通部 城轨交通运营管理规定_韩国又松大学热门专业-轨道交通运营与管理专业介绍...
  12. Spring拦截器和过滤器的区别及详解
  13. android 编写优质代码,GitHub - RayFantasyStudio/iCode-Android: 为开发者而生,提供在线代码存放,展示你优秀代码的平台...
  14. php weka,使用Weka进行数据挖掘
  15. Linux—— httpd
  16. 论文阅读: Inertia Tensor Properties in Robot Dynamics Identification: A Linear Matrix Inequality Approac
  17. 【随笔记】做事要讲究轻重缓急,一定要把握主次轻重。
  18. 阿里云服务器出错500 - 内部服务器错误
  19. 解决只有IE浏览器可以上网,其他浏览器不能上网
  20. 基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告

热门文章

  1. Android WebView 网页使用本地字体
  2. hexframe软件(二进制查看文件)
  3. NB-IOT开发实战
  4. 雷电模拟器android4.2,雷电安卓模拟器-雷电模拟器下载 v4.0.55.0官方版--pc6下载站...
  5. Spring定时器cron表达式
  6. 禅道下载docker安装
  7. 网易云音乐转码_网易云音乐产品分析报告
  8. 一文读懂蓝牙低功耗BLE的应用市场
  9. IDEA格式化SQL代码
  10. Linux学习笔记——网络组成