Package org.aoju.bus.core.builder
Class ReflectionToStringBuilder
java.lang.Object
org.aoju.bus.core.builder.ToStringBuilder
org.aoju.bus.core.builder.ReflectionToStringBuilder
- All Implemented Interfaces:
Serializable,Builder<String>
使用反射帮助实现
Object.toString()方法
该类使用反射来确定要追加的字段。因为这些字段通常是私有的,所以该类使用 AccessibleObject.setAccessible(AccessibleObject[], boolean)
来更改字段的可见性。在安全管理器下,除非正确设置了适当的权限,否则此操作将失败
此方法的典型调用如下所示:
public String toString() {
return ReflectionToStringBuilder.toString(this);
}
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.aoju.bus.core.builder.Builder
Builder.HashKey -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionReflectionToStringBuilder(Object object) ReflectionToStringBuilder(Object object, ToStringStyle style) ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer) ReflectionToStringBuilder(T object, ToStringStyle style, StringBuffer buffer, Class<? super T> reflectUpToClass, boolean outputTransients, boolean outputStatics) 构造函数ReflectionToStringBuilder(T object, ToStringStyle style, StringBuffer buffer, Class<? super T> reflectUpToClass, boolean outputTransients, boolean outputStatics, boolean excludeNullValues) 构造函数 -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean返回是否附加给定的字段 Transient fields are appended only ifisAppendTransients()returnstrue.protected voidappendFieldsIn(Class<?> clazz) 附加由给定类的给定对象定义的字段和值.String[]Class<?> protected ObjectbooleanbooleanbooleanreflectionAppendArray(Object array) voidsetAppendStatics(boolean appendStatics) voidsetAppendTransients(boolean appendTransients) setExcludeFieldNames(String... excludeFieldNamesParam) voidsetExcludeNullValues(boolean excludeNullValues) voidsetUpToClass(Class<?> clazz) toString()Returns the builttoString.static Stringstatic StringtoString(Object object, ToStringStyle style) static StringtoString(Object object, ToStringStyle style, boolean outputTransients) static StringtoString(Object object, ToStringStyle style, boolean outputTransients, boolean outputStatics) static <T> StringtoString(T object, ToStringStyle style, boolean outputTransients, boolean outputStatics, boolean excludeNullValues, Class<? super T> reflectUpToClass) static <T> StringtoString(T object, ToStringStyle style, boolean outputTransients, boolean outputStatics, Class<? super T> reflectUpToClass) static StringtoStringExclude(Object object, String... excludeFieldNames) static StringtoStringExclude(Object object, Collection<String> excludeFieldNames) Methods inherited from class org.aoju.bus.core.builder.ToStringBuilder
append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, append, appendAsObjectToString, appendSuper, appendToString, build, getDefaultStyle, getObject, getStringBuffer, getStyle, reflectionToString, reflectionToString, reflectionToString, reflectionToString, setDefaultStyle
-
Field Details
-
excludeFieldNames
要从输出中排除哪些字段名。适用于"password"等字段
-
-
Constructor Details
-
ReflectionToStringBuilder
-
ReflectionToStringBuilder
-
ReflectionToStringBuilder
-
ReflectionToStringBuilder
public ReflectionToStringBuilder(T object, ToStringStyle style, StringBuffer buffer, Class<? super T> reflectUpToClass, boolean outputTransients, boolean outputStatics) 构造函数- Type Parameters:
T- 对象的类型- Parameters:
object- 对象来构建一个toStringstyle- 创建的toString,可以是nullbuffer- 要填充的StringBuffer,可以是nullreflectUpToClass- 要反映到(包括)的超类可以是nulloutputTransients- 是否包含忽略字段outputStatics- 是否包含静态字段
-
ReflectionToStringBuilder
public ReflectionToStringBuilder(T object, ToStringStyle style, StringBuffer buffer, Class<? super T> reflectUpToClass, boolean outputTransients, boolean outputStatics, boolean excludeNullValues) 构造函数- Type Parameters:
T- 对象的类型- Parameters:
object- 对象来构建一个toStringstyle- 创建的toString,可以是nullbuffer- 要填充的StringBuffer,可以是nullreflectUpToClass- 要反映到(包括)的超类可以是nulloutputTransients- 是否包含忽略字段outputStatics- 是否包含静态字段excludeNullValues- 是否排除值为空的字段
-
-
Method Details
-
toString
-
toString
-
toString
-
toString
public static String toString(Object object, ToStringStyle style, boolean outputTransients, boolean outputStatics) -
toString
public static <T> String toString(T object, ToStringStyle style, boolean outputTransients, boolean outputStatics, Class<? super T> reflectUpToClass) -
toString
public static <T> String toString(T object, ToStringStyle style, boolean outputTransients, boolean outputStatics, boolean excludeNullValues, Class<? super T> reflectUpToClass) -
toStringExclude
-
toStringExclude
-
accept
返回是否附加给定的字段- Transient fields are appended only if
isAppendTransients()returnstrue. - Static fields are appended only if
isAppendStatics()returnstrue. - Inner class fields are not appended.
- Parameters:
field- 字段属性.- Returns:
- 是否附加给定的字段.
- Transient fields are appended only if
-
appendFieldsIn
-
getExcludeFieldNames
-
setExcludeFieldNames
-
getUpToClass
-
setUpToClass
-
getValue
- Throws:
IllegalAccessException
-
isAppendStatics
public boolean isAppendStatics() -
setAppendStatics
public void setAppendStatics(boolean appendStatics) -
isAppendTransients
public boolean isAppendTransients() -
setAppendTransients
public void setAppendTransients(boolean appendTransients) -
isExcludeNullValues
public boolean isExcludeNullValues() -
setExcludeNullValues
public void setExcludeNullValues(boolean excludeNullValues) -
reflectionAppendArray
-
toString
Description copied from class:ToStringBuilderReturns the built
toString.This method appends the end of data indicator, and can only be called once. Use
ToStringBuilder.getStringBuffer()to get the current string state.If the object is
null, return the style'snullText- Overrides:
toStringin classToStringBuilder- Returns:
- the String
toString
-