public final class
ReflectionUtil
extends
Object
Utility class for performing common reflective operations.
Since:
Gets the default (no-arg) constructor for a given class.
Gets the value of a
Field
, making it accessible if required.
Gets the value of a static
Field
, making it accessible if required.
static <T> T
Constructs a new
T
object using the default constructor of its class.
Indicates whether or not a
Member
is both public and is contained in a public class.
static void
static void
Sets the value of a
Field
, making it accessible if required.
static void
Sets the value of a static
Field
, making it accessible if required.
isAccessible
Indicates whether or not a
Member
is both public and is contained in a public class.
Type Parameters:
T
- type of the object whose accessibility to test
Parameters:
member
- the Member to check for public accessibility (must not be
null
).
Returns:
true
if
member
is public and contained in a public class.
Throws:
NullPointerException
- if
member
is
null
.
makeAccessible
Type Parameters:
T
- type of the object to make accessible
Parameters:
member
- the Member to make accessible (must not be
null
).
Throws:
NullPointerException
- if
member
is
null
.
makeAccessible
public static
void
makeAccessible
(
Field
field)
Makes a
Field
accessible
if it is not public or if it is final.
Note that using this method to make a
final
field writable will most likely not work very well due to
compiler optimizations and the like.
Parameters:
field
- the Field to make accessible (must not be
null
).
Throws:
NullPointerException
- if
field
is
null
.
Gets the value of a
Field
, making it accessible if required.
Parameters:
field
- the Field to obtain a value from (must not be
null
).
instance
- the instance to obtain the field value from or
null
only if the field is static.
Returns:
the value stored by the field.
Throws:
NullPointerException
- if
field
is
null
, or if
instance
is
null
but
field
is not
static
.
See Also:
Field.get(Object)
getStaticFieldValue
public static
Object
getStaticFieldValue
(
Field
field)
Gets the value of a static
Field
, making it accessible if required.
Parameters:
field
- the Field to obtain a value from (must not be
null
).
Returns:
the value stored by the static field.
Throws:
NullPointerException
- if
field
is
null
, or if
field
is not
static
.
See Also:
Field.get(Object)
Object
instance,
Object
value)
Sets the value of a
Field
, making it accessible if required.
Parameters:
field
- the Field to write a value to (must not be
null
).
instance
- the instance to write the value to or
null
only if the field is static.
value
- the (possibly wrapped) value to write to the field.
Throws:
NullPointerException
- if
field
is
null
, or if
instance
is
null
but
field
is not
static
.
See Also:
Field.set(Object, Object)
setStaticFieldValue
public static
void
setStaticFieldValue
(
Field
field,
Object
value)
Sets the value of a static
Field
, making it accessible if required.
Parameters:
field
- the Field to write a value to (must not be
null
).
value
- the (possibly wrapped) value to write to the field.
Throws:
NullPointerException
- if
field
is
null
, or if
field
is not
static
.
See Also:
Field.set(Object, Object)
getDefaultConstructor
Gets the default (no-arg) constructor for a given class.
Type Parameters:
T
- the type made by the constructor
Parameters:
clazz
- the class to find a constructor for
Returns:
the default constructor for the given class
Throws:
IllegalStateException
- if no default constructor can be found
instantiate
public static
<T>
T
instantiate
(
Class
<T> clazz)
Constructs a new
T
object using the default constructor of its class. Any exceptions thrown by the
constructor will be rethrown by this method, possibly wrapped in an
UndeclaredThrowableException
.
Type Parameters:
T
- the type of the object to construct.
Parameters:
clazz
- the class to use for instantiation.
Returns:
a new instance of T made from its default constructor.
Throws:
IllegalArgumentException
- if the given class is abstract, an interface, an array class, a primitive type,
or void
IllegalStateException
- if access is denied to the constructor, or there are no default constructors
InternalError
- wrapper of the underlying exception if checked