ToStringBuilder介绍

ToStringBuilder介绍之前输出日志或者输出对象信息都是直接调用 toString 方法 今天在学习 Spring 源码时看到这个工具类 记录一下 ToStringBuil 简单介绍 ToStringBuil 是用于构建一个类的 toString 字符串的工具类 提供了多种不同的格式 同时还能自定义打印哪些变量 主要用于日志输出 这样会节省内存 ToStringBuil 主要方法 append 方法

之前输出日志或者输出对象信息都是直接调用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

(0)
上一篇 2026年3月19日 下午7:22
下一篇 2026年3月19日 下午7:23


相关推荐

  • Cursor IDE 使用指南:像带实习生一样带你的 AI 编程搭档

    Cursor IDE 使用指南:像带实习生一样带你的 AI 编程搭档

    2026年3月16日
    2
  • TCP拥塞控制策略

    TCP拥塞控制策略一、Reno1、算法执行示意                                   图1 算法执行图2、算法原理Reno是一种基于丢包的拥塞控制算法,将丢包视为出现拥塞,采取缓慢探测的方式,逐渐增大拥塞窗口,当出现丢包时,将拥塞窗口减小。该算法拥塞控制的过程分为四个阶段:慢开始、拥塞避免、快重传和快恢复,分别对应四种算法。 (1)慢开始算法当主机总数…

    2022年6月24日
    30
  • Python定义函数

    Python定义函数其他形式1:1、定义函数deftest4(a=()):print('################test4################')print(type(a

    2022年7月5日
    27
  • 常用的Java工具,16个

    常用的Java工具,16个在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。一.org.apache.commons.io.IOUtilscloseQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块toString:转换IO流、Uri、byte[]为Stringcopy:IO流数据复制,从输入流写到输出流中,最大支持2GB

    2022年7月7日
    31
  • linux之awk用法详解

    linux之awk用法详解[转自:http://blog.chinaunix.net/uid-23302288-id-3785105.html]awk是行处理器:相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息awk处理过程: 依次对每一行进行处理,然后输出awk命令形式:awk[-F|-f|-v]‘BEGIN{}//{command1;comman…

    2022年7月27日
    16
  • java常用的io流_io流java

    java常用的io流_io流javaIO流大家肯定不陌生,简单整理了一下常用IO流基本用法,其他的IO流以后有时间在整理。1.基本概念IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。2.IO流的分类图示:(主要IO流)3.字节流(1).字节流基类1).InputStreamInputStream:字节输入流基类,抽象类是表示字节输入流的所有

    2022年10月20日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号