|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.lang.builder.ToStringBuilder org.apache.commons.lang.builder.ReflectionToStringBuilder
Assists in implementing Object.toString()
methods using reflection.
This class uses reflection to determine the fields to append.
Because these fields are usually private, the class
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.
A typical invocation for this method would look like:
public String toString() { return ReflectionToStringBuilder.toString(this); }
You can also use the builder to debug 3rd party objects:
System.out.println("An object: " + ReflectionToStringBuilder.toString(anObject));
A subclass can control field output by overriding the methods:
For example, this method does not include the password
field in the returned
String
:
public String toString() { return (new ReflectionToStringBuilder(this) { protected boolean accept(Field f) { return super.accept(f) && !f.getName().equals("password"); } }).toString(); }
The exact format of the toString
is determined by
the ToStringStyle
passed into the constructor.
Constructor Summary | |
ReflectionToStringBuilder(Object object)
Constructor. |
|
ReflectionToStringBuilder(Object object,
ToStringStyle style)
Constructor. |
|
ReflectionToStringBuilder(Object object,
ToStringStyle style,
StringBuffer buffer)
Constructor. |
|
ReflectionToStringBuilder(Object object,
ToStringStyle style,
StringBuffer buffer,
Class reflectUpToClass,
boolean outputTransients)
Constructor. |
Method Summary | |
protected boolean |
accept(Field field)
Returns whether or not to append the given Field . |
protected void |
appendFieldsIn(Class clazz)
Appends the fields and values defined by the given object of the given Class. |
Class |
getUpToClass()
Gets the last super class to stop appending fields for. |
protected Object |
getValue(Field field)
Calls java.lang.reflect.Field.get(Object) . |
boolean |
isAppendTransients()
Gets whether or not to append transient fields. |
ToStringBuilder |
reflectionAppendArray(Object array)
Append to the toString an Object
array. |
void |
setAppendTransients(boolean appendTransients)
Sets whether or not to append transient fields. |
void |
setUpToClass(Class clazz)
Sets the last super class to stop appending fields for. |
String |
toString()
Gets the String built by this builder. |
static String |
toString(Object object)
This method uses reflection to build a suitable toString using the default ToStringStyle . |
static String |
toString(Object object,
ToStringStyle style)
This method uses reflection to build a suitable toString . |
static String |
toString(Object object,
ToStringStyle style,
boolean outputTransients)
This method uses reflection to build a suitable toString . |
static String |
toString(Object object,
ToStringStyle style,
boolean outputTransients,
Class reflectUpToClass)
This method uses reflection to build a suitable toString . |
Methods inherited from class org.apache.commons.lang.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, getDefaultStyle, getObject, getStringBuffer, getStyle, reflectionToString, reflectionToString, reflectionToString, reflectionToString, setDefaultStyle |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public ReflectionToStringBuilder(Object object)
Constructor.
This constructor outputs using the default style set with
setDefaultStyle
.
object
- the Object to build a toString
for,
must not be null
IllegalArgumentException
- if the Object passed in is
null
public ReflectionToStringBuilder(Object object, ToStringStyle style)
Constructor.
If the style is null
, the default style is used.
object
- the Object to build a toString
for,
must not be null
style
- the style of the toString
to create,
may be null
IllegalArgumentException
- if the Object passed in is
null
public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer)
Constructor.
If the style is null
, the default style is used.
If the buffer is null
, a new one is created.
object
- the Object to build a toString
for,
must not be null
style
- the style of the toString
to create,
may be null
buffer
- the StringBuffer
to populate, may be
null
IllegalArgumentException
- if the Object passed in is
null
public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer, Class reflectUpToClass, boolean outputTransients)
object
- the Object to build a toString
for,
must not be null
style
- the style of the toString
to create,
may be null
buffer
- the StringBuffer
to populate, may be
null
reflectUpToClass
- the superclass to reflect up to (inclusive),
may be null
outputTransients
- whether to include transient fieldsMethod Detail |
public static String toString(Object object)
This method uses reflection to build a suitable
toString
using the default ToStringStyle
.
It uses AccessibleObject.setAccessible
to gain access to private
fields. This means that it will throw a security exception if run
under a security manager, if the permissions are not set up correctly.
It is also not as efficient as testing explicitly.
Transient members will be not be included, as they are likely derived. Static fields will not be included. Superclass fields will be appended.
object
- the Object to be output
IllegalArgumentException
- if the Object is null
public static String toString(Object object, ToStringStyle style)
This method uses reflection to build a suitable
toString
.
It uses AccessibleObject.setAccessible
to gain access to private
fields. This means that it will throw a security exception if run
under a security manager, if the permissions are not set up correctly.
It is also not as efficient as testing explicitly.
Transient members will be not be included, as they are likely derived. Static fields will not be included. Superclass fields will be appended.
If the style is null
, the default
ToStringStyle
is used.
object
- the Object to be outputstyle
- the style of the toString
to create,
may be null
IllegalArgumentException
- if the Object or
ToStringStyle
is null
public static String toString(Object object, ToStringStyle style, boolean outputTransients)
This method uses reflection to build a suitable
toString
.
It uses AccessibleObject.setAccessible
to gain access to private
fields. This means that it will throw a security exception if run
under a security manager, if the permissions are not set up correctly.
It is also not as efficient as testing explicitly.
If the outputTransients
is true
,
transient members will be output, otherwise they are ignored,
as they are likely derived fields, and not part of the value of the
Object.
Static fields will not be included. Superclass fields will be appended.
If the style is null
, the default
ToStringStyle
is used.
object
- the Object to be outputstyle
- the style of the toString
to create,
may be null
outputTransients
- whether to include transient fields
IllegalArgumentException
- if the Object is null
public static String toString(Object object, ToStringStyle style, boolean outputTransients, Class reflectUpToClass)
This method uses reflection to build a suitable
toString
.
It uses AccessibleObject.setAccessible
to gain access to private
fields. This means that it will throw a security exception if run
under a security manager, if the permissions are not set up correctly.
It is also not as efficient as testing explicitly.
If the outputTransients
is true
,
transient members will be output, otherwise they are ignored,
as they are likely derived fields, and not part of the value of the
Object.
Static fields will not be included. Superclass fields will be appended
up to and including the specified superclass. A null superclass is treated
as java.lang.Object
.
If the style is null
, the default
ToStringStyle
is used.
object
- the Object to be outputstyle
- the style of the toString
to create,
may be null
outputTransients
- whether to include transient fieldsreflectUpToClass
- the superclass to reflect up to (inclusive),
may be null
IllegalArgumentException
- if the Object is null
protected boolean accept(Field field)
Field
.
isAppendTransients()
returns true
.
field
- The Field to test.
Field
.protected void appendFieldsIn(Class clazz)
Appends the fields and values defined by the given object of the given Class.
If a cycle is detected as an object is "toString()'ed",
such an object is rendered as if Object.toString()
had been called and not implemented by the object.
clazz
- The class of object parameterpublic Class getUpToClass()
Gets the last super class to stop appending fields for.
protected Object getValue(Field field) throws IllegalArgumentException, IllegalAccessException
Calls java.lang.reflect.Field.get(Object)
.
IllegalArgumentException
IllegalAccessException
Field.get(Object)
public boolean isAppendTransients()
Gets whether or not to append transient fields.
public ToStringBuilder reflectionAppendArray(Object array)
Append to the toString
an Object
array.
array
- the array to add to the toString
public void setAppendTransients(boolean appendTransients)
Sets whether or not to append transient fields.
appendTransients
- Whether or not to append transient fields.public void setUpToClass(Class clazz)
Sets the last super class to stop appending fields for.
clazz
- The last super class to stop appending fields for.public String toString()
Gets the String built by this builder.
toString
in class ToStringBuilder
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |