apache.commons.lang 包下面有個小清新的工具
包package org.apache.commons.lang.builder
項目中一般都需要打印日志,所有實體的toString()方法都可以使用者兩個類來進行重寫。
主要是 ToStringBuilder 的靜態(tài)方法
public static String reflectionToString(Object object, ToStringStyle style) {
return ReflectionToStringBuilder.toString(object, style);
}
ReflectionToStringBuilder主要是通過java 反射實現(xiàn)的屬性拼接懊蒸。
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();
}
其中參數(shù) ToStringStyle 是個抽象類澜建,定義了輸出的格式 主要是 append了一類類信息到字符串上,可以自己繼承ToStringStyle 實現(xiàn)自定義的輸出格式 canal源碼中有 自己的實現(xiàn)
可以參照這幾個類實現(xiàn)自得是 ToStringStyle