ToStringBuilder ToStringStyle

apache.commons.lang 包下面有个小清新的工具
包package org.apache.commons.lang.builder

所在包

项目中一般都需要打印日志,所有实体的toString()方法都可以使用者两个类来进行重写。
主要是 ToStringBuilder 的静态方法

 public static String reflectionToString(Object object, ToStringStyle style) {
        return ReflectionToStringBuilder.toString(object, style);
    }

ReflectionToStringBuilder主要是通过java 反射实现的属性拼接。

 public static String toString(Object object, ToStringStyle style, boolean outputTransients, boolean outputStatics,
            Class reflectUpToClass) {
        return new ReflectionToStringBuilder(object, style, null, reflectUpToClass, outputTransients, outputStatics)
                .toString();
    }
    public String toString() {
        if (this.getObject() == null) {
            return this.getStyle().getNullText();
        }
        Class clazz = this.getObject().getClass();
        this.appendFieldsIn(clazz);
        while (clazz.getSuperclass() != null && clazz != this.getUpToClass()) {
            clazz = clazz.getSuperclass();
            this.appendFieldsIn(clazz);
        }
        return super.toString();
    }

其中参数 ToStringStyle 是个抽象类,定义了输出的格式 主要是 append了一类类信息到字符串上,可以自己继承ToStringStyle 实现自定义的输出格式 canal源码中有 自己的实现

canal实现的自定义输出格式

可以参照这几个类实现自得是 ToStringStyle

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 一、背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务...
    献给记性不好的自己阅读 46,211评论 3 40
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,769评论 18 399
  • 生活倏忽间就变了!过年了,刘女士的心情糟糕到极点。 当左邻忽然动工修楼房起,刘女士的生活就被彻底打乱了。她眼睁睁...
    风儿拂千秋阅读 304评论 0 1
  • 隐隐感觉喜爱做耳坠尤其是拍摄耳坠的一个内在的需求也许是—— 我们能给予对方的最大的坚持、耐心和等待这些实相远比过程...
    PhoenixScorpio阅读 168评论 0 0