Class ReflectionToStringBuilder

java.lang.Object
org.aoju.bus.core.builder.ToStringBuilder
org.aoju.bus.core.builder.ReflectionToStringBuilder
All Implemented Interfaces:
Serializable, Builder<String>

public class ReflectionToStringBuilder extends ToStringBuilder
使用反射帮助实现Object.toString()方法

该类使用反射来确定要追加的字段。因为这些字段通常是私有的,所以该类使用 AccessibleObject.setAccessible(AccessibleObject[], boolean) 来更改字段的可见性。在安全管理器下,除非正确设置了适当的权限,否则此操作将失败

此方法的典型调用如下所示:

 public String toString() {
     return ReflectionToStringBuilder.toString(this);
 }
 
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Details

    • excludeFieldNames

      protected String[] excludeFieldNames
      要从输出中排除哪些字段名。适用于 "password"等字段
  • Constructor Details

    • ReflectionToStringBuilder

      public ReflectionToStringBuilder(Object object)
    • ReflectionToStringBuilder

      public ReflectionToStringBuilder(Object object, ToStringStyle style)
    • ReflectionToStringBuilder

      public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer)
    • ReflectionToStringBuilder

      public ReflectionToStringBuilder(T object, ToStringStyle style, StringBuffer buffer, Class<? super T> reflectUpToClass, boolean outputTransients, boolean outputStatics)
      构造函数
      Type Parameters:
      T - 对象的类型
      Parameters:
      object - 对象来构建一个 toString
      style - 创建的toString,可以是null
      buffer - 要填充的StringBuffer,可以是null
      reflectUpToClass - 要反映到(包括)的超类可以是null
      outputTransients - 是否包含忽略字段
      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 - 对象来构建一个 toString
      style - 创建的toString,可以是null
      buffer - 要填充的StringBuffer,可以是null
      reflectUpToClass - 要反映到(包括)的超类可以是null
      outputTransients - 是否包含忽略字段
      outputStatics - 是否包含静态字段
      excludeNullValues - 是否排除值为空的字段
  • Method Details

    • toString

      public static String toString(Object object)
    • toString

      public static String toString(Object object, ToStringStyle style)
    • toString

      public static String toString(Object object, ToStringStyle style, boolean outputTransients)
    • 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

      public static String toStringExclude(Object object, Collection<String> excludeFieldNames)
    • toStringExclude

      public static String toStringExclude(Object object, String... excludeFieldNames)
    • accept

      protected boolean accept(Field field)
      返回是否附加给定的字段
      Parameters:
      field - 字段属性.
      Returns:
      是否附加给定的字段.
    • appendFieldsIn

      protected void appendFieldsIn(Class<?> clazz)
      附加由给定类的给定对象定义的字段和值.
      Parameters:
      clazz - 对象参数的类
    • getExcludeFieldNames

      public String[] getExcludeFieldNames()
    • setExcludeFieldNames

      public ReflectionToStringBuilder setExcludeFieldNames(String... excludeFieldNamesParam)
    • getUpToClass

      public Class<?> getUpToClass()
    • setUpToClass

      public void setUpToClass(Class<?> clazz)
    • getValue

      protected Object getValue(Field field) throws IllegalAccessException
      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

      public ReflectionToStringBuilder reflectionAppendArray(Object array)
    • toString

      public String toString()
      Description copied from class: ToStringBuilder

      Returns 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's nullText

      Overrides:
      toString in class ToStringBuilder
      Returns:
      the String toString