ToStringBuilder ToStringStyle

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

ToStringBuilder ToStringStyle_第1张图片
所在包

项目中一般都需要打印日志,所有实体的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源码中有 自己的实现

ToStringBuilder ToStringStyle_第2张图片
canal实现的自定义输出格式

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

你可能感兴趣的:(ToStringBuilder ToStringStyle)