(二十三)Java工具类ToStringBuilder方法详解
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方法详解相关推荐
- Java中的main()方法详解
源文作者:leizhimin 源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...
- 使用Java操作文本文件的方法详解
使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而 ...
- Android之TelephonyManager类的方法详解
林计钦-JAVA java技术群:127834248 博客园 首页 社区 新随笔 联系 订阅 管理 随笔-105 评论-24 文章-0 trackbacks-0 Andr ...
- Java Thread的interrupt方法详解
Java Thread的interrupt方法详解 一.概述 interrupt方法的目的是给线程发出中断信号,但是不保证线程真的会中断 中断一个线程只是为了引起该线程的注意,被中断线程可以决定如何应 ...
- python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...
- python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...
怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...
- python元组读取到列表_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...
如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...
- java semaphore 等待时间_一个java同步工具类Semaphore的详解
Semaphore是java并发包里面的一个工具类,我们限制可以访问某些资源的线程数目就可以使用Semaphore了.这篇文章将对Semaphore的概念和使用进行一个详解. 一.概念理解 官方是这样 ...
- java dateutil 获取时间戳_java DateUtil工具类时间戳类型转换详解
本文实例为大家分享了DateUtil工具类时间戳类型转换的具体代码,供大家参考,具体内容如下 package com.sinosoft.media.sms.util; import java.text ...
- java barrier_Java并发类CyclicBarrier方法详解
Cyclic是周期的意思,Barrier是关卡的意思.CyclicBarrier不仅有CountDownLatch的功能,还可以实现屏障等待,即阶段性同步.因此适用于,需要循环地实现线程一起做任务的目 ...
最新文章
- 私房库视频学习笔记-小清新BBS系统开发技术归纳
- python 练习题-去重排序与字符串分割
- 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
- 基于深度学习的病理_组织病理学的深度学习(第二部分)
- .NET 6新特性试用 | System.Text.Json序列化代码自动生成
- Python中文编码 - Python零基础入门教程
- 构造方法与对象的创建 java 1614780813
- 超声波的四个特性_超声波传感器,超声波的特性
- android反编译之获得res下的xml配置文件及图片等资源
- 用python画图代码-常用激活函数的python画图代码
- 交通部 城轨交通运营管理规定_韩国又松大学热门专业-轨道交通运营与管理专业介绍...
- Spring拦截器和过滤器的区别及详解
- android 编写优质代码,GitHub - RayFantasyStudio/iCode-Android: 为开发者而生,提供在线代码存放,展示你优秀代码的平台...
- php weka,使用Weka进行数据挖掘
- Linux—— httpd
- 论文阅读: Inertia Tensor Properties in Robot Dynamics Identification: A Linear Matrix Inequality Approac
- 【随笔记】做事要讲究轻重缓急,一定要把握主次轻重。
- 阿里云服务器出错500 - 内部服务器错误
- 解决只有IE浏览器可以上网,其他浏览器不能上网
- 基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告