org.apache.commons.lang3.builder

## Class ToStringBuilder

- java.lang.Object
- - org.apache.commons.lang3.builder.ToStringBuilder

- All Implemented Interfaces:
    Builder<String>
  Direct Known Subclasses:
    ReflectionToStringBuilder

      public class ToStringBuilder
      extends Object
      implements Builder<String>

  Assists in implementing `Object.toString()` methods.

  This class enables a good and consistent `toString()` to be built for any class or object. This class aims to simplify the process by:

  - allowing field names
  - handling all types consistently
  - handling nulls consistently
  - outputting arrays and multi-dimensional arrays
  - enabling the detail level to be controlled for Objects and Collections
  - handling class hierarchies

  To use this class write code as follows:

       public class Person {
         String name;
         int age;
         boolean smoker;

         ...

         public String toString() {
           return new ToStringBuilder(this).
             append("name", name).
             append("age", age).
             append("smoker", smoker).
             toString();
         }
       }

  This will produce a toString of the format: `Person@7f54[name=Stephen,age=29,smoker=false]`

  To add the superclass `toString`, use `appendSuper(java.lang.String)`. To append the `toString` from an object that is delegated to (or any other object), use `appendToString(java.lang.String)`.

  Alternatively, there is a method that uses reflection to determine the fields to test. Because these fields are usually private, the method, `reflectionToString`, uses `AccessibleObject.setAccessible` to change the visibility of the fields. This will fail under a security manager, unless the appropriate permissions are set up correctly. It is also slower than testing explicitly.

  A typical invocation for this method would look like:

       public String toString() {
         return ToStringBuilder.reflectionToString(this);
       }

  You can also use the builder to debug 3rd party objects:

       System.out.println("An object: " + ToStringBuilder.reflectionToString(anObject));

  The exact format of the `toString` is determined by the `ToStringStyle` passed into the constructor.

  Since:
    1.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ToStringBuilder(Object object)` Constructs a builder for the specified object using the default output style.
    `ToStringBuilder(Object object, ToStringStyle style)` Constructs a builder for the specified object using the defined output style.
    `ToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer)` Constructs a builder for the specified object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ToStringBuilder` | `append(boolean value)` Append to the `toString` a `boolean` value.
    `ToStringBuilder` | `append(boolean[] array)` Append to the `toString` a `boolean` array.
    `ToStringBuilder` | `append(byte value)` Append to the `toString` a `byte` value.
    `ToStringBuilder` | `append(byte[] array)` Append to the `toString` a `byte` array.
    `ToStringBuilder` | `append(char value)` Append to the `toString` a `char` value.
    `ToStringBuilder` | `append(char[] array)` Append to the `toString` a `char` array.
    `ToStringBuilder` | `append(double value)` Append to the `toString` a `double` value.
    `ToStringBuilder` | `append(double[] array)` Append to the `toString` a `double` array.
    `ToStringBuilder` | `append(float value)` Append to the `toString` a `float` value.
    `ToStringBuilder` | `append(float[] array)` Append to the `toString` a `float` array.
    `ToStringBuilder` | `append(int value)` Append to the `toString` an `int` value.
    `ToStringBuilder` | `append(int[] array)` Append to the `toString` an `int` array.
    `ToStringBuilder` | `append(long value)` Append to the `toString` a `long` value.
    `ToStringBuilder` | `append(long[] array)` Append to the `toString` a `long` array.
    `ToStringBuilder` | `append(Object obj)` Append to the `toString` an `Object` value.
    `ToStringBuilder` | `append(Object[] array)` Append to the `toString` an `Object` array.
    `ToStringBuilder` | `append(short value)` Append to the `toString` a `short` value.
    `ToStringBuilder` | `append(short[] array)` Append to the `toString` a `short` array.
    `ToStringBuilder` | `append(String fieldName, boolean value)` Append to the `toString` a `boolean` value.
    `ToStringBuilder` | `append(String fieldName, boolean[] array)` Append to the `toString` a `boolean` array.
    `ToStringBuilder` | `append(String fieldName, boolean[] array, boolean fullDetail)` Append to the `toString` a `boolean` array.
    `ToStringBuilder` | `append(String fieldName, byte value)` Append to the `toString` an `byte` value.
    `ToStringBuilder` | `append(String fieldName, byte[] array)` Append to the `toString` a `byte` array.
    `ToStringBuilder` | `append(String fieldName, byte[] array, boolean fullDetail)` Append to the `toString` a `byte` array.
    `ToStringBuilder` | `append(String fieldName, char value)` Append to the `toString` a `char` value.
    `ToStringBuilder` | `append(String fieldName, char[] array)` Append to the `toString` a `char` array.
    `ToStringBuilder` | `append(String fieldName, char[] array, boolean fullDetail)` Append to the `toString` a `char` array.
    `ToStringBuilder` | `append(String fieldName, double value)` Append to the `toString` a `double` value.
    `ToStringBuilder` | `append(String fieldName, double[] array)` Append to the `toString` a `double` array.
    `ToStringBuilder` | `append(String fieldName, double[] array, boolean fullDetail)` Append to the `toString` a `double` array.
    `ToStringBuilder` | `append(String fieldName, float value)` Append to the `toString` an `float` value.
    `ToStringBuilder` | `append(String fieldName, float[] array)` Append to the `toString` a `float` array.
    `ToStringBuilder` | `append(String fieldName, float[] array, boolean fullDetail)` Append to the `toString` a `float` array.
    `ToStringBuilder` | `append(String fieldName, int value)` Append to the `toString` an `int` value.
    `ToStringBuilder` | `append(String fieldName, int[] array)` Append to the `toString` an `int` array.
    `ToStringBuilder` | `append(String fieldName, int[] array, boolean fullDetail)` Append to the `toString` an `int` array.
    `ToStringBuilder` | `append(String fieldName, long value)` Append to the `toString` a `long` value.
    `ToStringBuilder` | `append(String fieldName, long[] array)` Append to the `toString` a `long` array.
    `ToStringBuilder` | `append(String fieldName, long[] array, boolean fullDetail)` Append to the `toString` a `long` array.
    `ToStringBuilder` | `append(String fieldName, Object obj)` Append to the `toString` an `Object` value.
    `ToStringBuilder` | `append(String fieldName, Object[] array)` Append to the `toString` an `Object` array.
    `ToStringBuilder` | `append(String fieldName, Object[] array, boolean fullDetail)` Append to the `toString` an `Object` array.
    `ToStringBuilder` | `append(String fieldName, Object obj, boolean fullDetail)` Append to the `toString` an `Object` value.
    `ToStringBuilder` | `append(String fieldName, short value)` Append to the `toString` an `short` value.
    `ToStringBuilder` | `append(String fieldName, short[] array)` Append to the `toString` a `short` array.
    `ToStringBuilder` | `append(String fieldName, short[] array, boolean fullDetail)` Append to the `toString` a `short` array.
    `ToStringBuilder` | `appendAsObjectToString(Object srcObject)` Appends with the same format as the default `Object toString()` method.
    `ToStringBuilder` | `appendSuper(String superToString)` Append the `toString` from the superclass.
    `ToStringBuilder` | `appendToString(String toString)` Append the `toString` from another object.
    `String` | `build()` Returns the String that was build as an object representation.
    `static ToStringStyle` | `getDefaultStyle()` Gets the default `ToStringStyle` to use.
    `Object` | `getObject()` Returns the `Object` being output.
    `StringBuffer` | `getStringBuffer()` Gets the `StringBuffer` being populated.
    `ToStringStyle` | `getStyle()` Gets the `ToStringStyle` being used.
    `static String` | `reflectionToString(Object object)` Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.
    `static String` | `reflectionToString(Object object, ToStringStyle style)` Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.
    `static String` | `reflectionToString(Object object, ToStringStyle style, boolean outputTransients)` Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.
    `static <T> String` | `reflectionToString(T object, ToStringStyle style, boolean outputTransients, Class<? super T> reflectUpToClass)` Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.
    `static void` | `setDefaultStyle(ToStringStyle style)` Sets the default `ToStringStyle` to use.
    `String` | `toString()` Returns the built `toString`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ToStringBuilder

          public ToStringBuilder(Object object)

      Constructs a builder for the specified object using the default output style.

      This default style is obtained from `getDefaultStyle()`.

      Parameters:
        `object` - the Object to build a `toString` for, not recommended to be null

    - #### ToStringBuilder

          public ToStringBuilder(Object object,
                                 ToStringStyle style)

      Constructs a builder for the specified object using the defined output style.

      If the style is `null`, the default style is used.

      Parameters:
        `object` - the Object to build a `toString` for, not recommended to be null
        `style` - the style of the `toString` to create, null uses the default style

    - #### ToStringBuilder

          public ToStringBuilder(Object object,
                                 ToStringStyle style,
                                 StringBuffer buffer)

      Constructs a builder for the specified object.

      If the style is `null`, the default style is used.

      If the buffer is `null`, a new one is created.

      Parameters:
        `object` - the Object to build a `toString` for, not recommended to be null
        `style` - the style of the `toString` to create, null uses the default style
        `buffer` - the `StringBuffer` to populate, may be null

  - ### Method Detail

    - #### getDefaultStyle

          public static ToStringStyle getDefaultStyle()

      Gets the default `ToStringStyle` to use.

      This method gets a singleton default value, typically for the whole JVM. Changing this default should generally only be done during application startup. It is recommended to pass a `ToStringStyle` to the constructor instead of using this global default.

      This method can be used from multiple threads. Internally, a `volatile` variable is used to provide the guarantee that the latest value set using `setDefaultStyle(org.apache.commons.lang3.builder.ToStringStyle)` is the value returned. It is strongly recommended that the default style is only changed during application startup.

      One reason for changing the default could be to have a verbose style during development and a compact style in production.

      Returns:
        the default `ToStringStyle`, never null

    - #### setDefaultStyle

          public static void setDefaultStyle(ToStringStyle style)

      Sets the default `ToStringStyle` to use.

      This method sets a singleton default value, typically for the whole JVM. Changing this default should generally only be done during application startup. It is recommended to pass a `ToStringStyle` to the constructor instead of changing this global default.

      This method is not intended for use from multiple threads. Internally, a `volatile` variable is used to provide the guarantee that the latest value set is the value returned from `getDefaultStyle()`.

      Parameters:
        `style` - the default `ToStringStyle`
      Throws:
        `IllegalArgumentException` - if the style is `null`

    - #### reflectionToString

          public static String reflectionToString(Object object)

      Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.

      Parameters:
        `object` - the Object to be output
      Returns:
        the String result
      See Also:
        `ReflectionToStringBuilder.toString(Object)`

    - #### reflectionToString

          public static String reflectionToString(Object object,
                                                  ToStringStyle style)

      Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.

      Parameters:
        `object` - the Object to be output
        `style` - the style of the `toString` to create, may be `null`
      Returns:
        the String result
      See Also:
        `ReflectionToStringBuilder.toString(Object,ToStringStyle)`

    - #### reflectionToString

          public static String reflectionToString(Object object,
                                                  ToStringStyle style,
                                                  boolean outputTransients)

      Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.

      Parameters:
        `object` - the Object to be output
        `style` - the style of the `toString` to create, may be `null`
        `outputTransients` - whether to include transient fields
      Returns:
        the String result
      See Also:
        `ReflectionToStringBuilder.toString(Object,ToStringStyle,boolean)`

    - #### reflectionToString

          public static <T> String reflectionToString(T object,
                                                      ToStringStyle style,
                                                      boolean outputTransients,
                                                      Class<? super T> reflectUpToClass)

      Uses `ReflectionToStringBuilder` to generate a `toString` for the specified object.

      Type Parameters:
        `T` - the type of the object
      Parameters:
        `object` - the Object to be output
        `style` - the style of the `toString` to create, may be `null`
        `outputTransients` - whether to include transient fields
        `reflectUpToClass` - the superclass to reflect up to (inclusive), may be `null`
      Returns:
        the String result
      Since:
        2.0
      See Also:
        `ReflectionToStringBuilder.toString(Object,ToStringStyle,boolean,boolean,Class)`

    - #### append

          public ToStringBuilder append(boolean value)

      Append to the `toString` a `boolean` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(boolean[] array)

      Append to the `toString` a `boolean` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(byte value)

      Append to the `toString` a `byte` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(byte[] array)

      Append to the `toString` a `byte` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(char value)

      Append to the `toString` a `char` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(char[] array)

      Append to the `toString` a `char` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(double value)

      Append to the `toString` a `double` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(double[] array)

      Append to the `toString` a `double` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(float value)

      Append to the `toString` a `float` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(float[] array)

      Append to the `toString` a `float` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(int value)

      Append to the `toString` an `int` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(int[] array)

      Append to the `toString` an `int` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(long value)

      Append to the `toString` a `long` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(long[] array)

      Append to the `toString` a `long` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(Object obj)

      Append to the `toString` an `Object` value.

      Parameters:
        `obj` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(Object[] array)

      Append to the `toString` an `Object` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(short value)

      Append to the `toString` a `short` value.

      Parameters:
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(short[] array)

      Append to the `toString` a `short` array.

      Parameters:
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        boolean value)

      Append to the `toString` a `boolean` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        boolean[] array)

      Append to the `toString` a `boolean` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `hashCode`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        boolean[] array,
                                        boolean fullDetail)

      Append to the `toString` a `boolean` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        byte value)

      Append to the `toString` an `byte` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        byte[] array)

      Append to the `toString` a `byte` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        byte[] array,
                                        boolean fullDetail)

      Append to the `toString` a `byte` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        char value)

      Append to the `toString` a `char` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        char[] array)

      Append to the `toString` a `char` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        char[] array,
                                        boolean fullDetail)

      Append to the `toString` a `char` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        double value)

      Append to the `toString` a `double` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        double[] array)

      Append to the `toString` a `double` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        double[] array,
                                        boolean fullDetail)

      Append to the `toString` a `double` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        float value)

      Append to the `toString` an `float` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        float[] array)

      Append to the `toString` a `float` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        float[] array,
                                        boolean fullDetail)

      Append to the `toString` a `float` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        int value)

      Append to the `toString` an `int` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        int[] array)

      Append to the `toString` an `int` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        int[] array,
                                        boolean fullDetail)

      Append to the `toString` an `int` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        long value)

      Append to the `toString` a `long` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        long[] array)

      Append to the `toString` a `long` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        long[] array,
                                        boolean fullDetail)

      Append to the `toString` a `long` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        Object obj)

      Append to the `toString` an `Object` value.

      Parameters:
        `fieldName` - the field name
        `obj` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        Object obj,
                                        boolean fullDetail)

      Append to the `toString` an `Object` value.

      Parameters:
        `fieldName` - the field name
        `obj` - the value to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        Object[] array)

      Append to the `toString` an `Object` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        Object[] array,
                                        boolean fullDetail)

      Append to the `toString` an `Object` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        short value)

      Append to the `toString` an `short` value.

      Parameters:
        `fieldName` - the field name
        `value` - the value to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        short[] array)

      Append to the `toString` a `short` array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
      Returns:
        this

    - #### append

          public ToStringBuilder append(String fieldName,
                                        short[] array,
                                        boolean fullDetail)

      Append to the `toString` a `short` array.

      A boolean parameter controls the level of detail to show. Setting `true` will output the array in full. Setting `false` will output a summary, typically the size of the array.

      Parameters:
        `fieldName` - the field name
        `array` - the array to add to the `toString`
        `fullDetail` - `true` for detail, `false` for summary info
      Returns:
        this

    - #### appendAsObjectToString

          public ToStringBuilder appendAsObjectToString(Object srcObject)

      Appends with the same format as the default `Object toString()` method. Appends the class name followed by `System.identityHashCode(java.lang.Object)`.

      Parameters:
        `srcObject` - the `Object` whose class name and id to output
      Returns:
        this
      Since:
        2.0

    - #### appendSuper

          public ToStringBuilder appendSuper(String superToString)

      Append the `toString` from the superclass.

      This method assumes that the superclass uses the same `ToStringStyle` as this one.

      If `superToString` is `null`, no change is made.

      Parameters:
        `superToString` - the result of `super.toString()`
      Returns:
        this
      Since:
        2.0

    - #### appendToString

          public ToStringBuilder appendToString(String toString)

      Append the `toString` from another object.

      This method is useful where a class delegates most of the implementation of its properties to another class. You can then call `toString()` on the other class and pass the result into this method.

             private AnotherObject delegate;
             private String fieldInThisClass;

             public String toString() {
               return new ToStringBuilder(this).
                 appendToString(delegate.toString()).
                 append(fieldInThisClass).
                 toString();
             }

      This method assumes that the other object uses the same `ToStringStyle` as this one.

      If the `toString` is `null`, no change is made.

      Parameters:
        `toString` - the result of `toString()` on another object
      Returns:
        this
      Since:
        2.0

    - #### getObject

          public Object getObject()

      Returns the `Object` being output.

      Returns:
        The object being output.
      Since:
        2.0

    - #### getStringBuffer

          public StringBuffer getStringBuffer()

      Gets the `StringBuffer` being populated.

      Returns:
        the `StringBuffer` being populated

    - #### getStyle

          public ToStringStyle getStyle()

      Gets the `ToStringStyle` being used.

      Returns:
        the `ToStringStyle` being used
      Since:
        2.0

    - #### toString

          public String toString()

      Returns the built `toString`.

      This method appends the end of data indicator, and can only be called once. Use `getStringBuffer()` to get the current string state.

      If the object is `null`, return the style's `nullText`

      Overrides:
        `toString` in class `Object`
      Returns:
        the String `toString`

    - #### build

          public String build()

      Returns the String that was build as an object representation. The default implementation utilizes the `toString()` implementation.
      Specified by:
        `build` in interface `Builder<String>`
      Returns:
        the String `toString`
      Since:
        3.0
      See Also:
        `toString()`

Copyright © 2001–2021 The Apache Software Foundation. All rights reserved.