之前输出日志或者输出对象信息都是直接调用toString()方法。今天在学习Spring 源码时看到这个工具类。记录一下。
ToStringBuilder简单介绍
ToStringBuilder是用于构建一个类的toString字符串的工具类,提供了多种不同的格式,同时还能自定义打印哪些变量。主要用于日志输出,这样会节省内存。
ToStringBuilder主要方法
- append()方法: 该方法用于自定义添加需要打印哪些变量,只有使用append添加的变量才会在toString函数中打印。
- reflectionToString()方法: 该方法使用反射机制打印一个类中的所有变量,该函数还提供一个变量style,用于指定使用什么样的格式打印变量,几种不的style将在下面介绍。
- 代码演示:
public class User { private String name; private int age; public User() { super(); } public User(String name) { super(); this.name = name; } public User(int age) { super(); this.age = age; } //省略get、set方法 @Override public String toString() { return new ToStringBuilder(this).append("name",name).append("age",age).toString(); } }
运行结果:
com.cn.ssm.test.User@bd[name=
,age=111]
reflectionToString 方法测试:
public class User { private String name; private int age; public User() { super(); } public User(String name) { super(); this.name = name; } public User(int age) { super(); this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return new ToStringBuilder.reflectionToString(this,ToStringStyle.DEFAULT_STYLE); } }
运行结果:
com.cn.ssm.test.User@23f9a9f4[name=Tom,age=111]
com.cn.ssm.test.User@57ea59b4[Tom,111]
可以看到并没有打印变量的名字,仅仅打印了变量的值.
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204854.html原文链接:https://javaforall.net
