ToStringBuilder ToStringStyle

作者: holly_wang_王小飞 | 来源:发表于2016-12-08 11:11 被阅读359次

    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

    相关文章

      网友评论

        本文标题:ToStringBuilder ToStringStyle

        本文链接:https://www.haomeiwen.com/subject/iyzjmttx.html