diff --git a/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java b/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java index fd3dc38e307..56fd187db28 100644 --- a/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java +++ b/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java @@ -29,9 +29,9 @@ import java.util.List; /** * Simple utility class for working with the reflection API and handling * reflection exceptions. - * - *
Only intended for internal use. - * + *
+ * Only intended for internal use.
+ *
* @author Juergen Hoeller
* @author Rob Harrop
* @author Rod Johnson
@@ -43,12 +43,14 @@ public abstract class ReflectionUtils {
/**
* Attempt to find a {@link Field field} on the supplied {@link Class} with
- * the supplied name. Searches all superclasses up to {@link Object}.
+ * the supplied name. Searches all superclasses up to
+ * {@link Object}.
+ *
* @param clazz the class to introspect
* @param name the name of the field
* @return the corresponding Field object, or null if not found
*/
- public static Field findField(Class clazz, String name) {
+ public static Field findField(Class> clazz, String name) {
return findField(clazz, name, null);
}
@@ -56,20 +58,22 @@ public abstract class ReflectionUtils {
* Attempt to find a {@link Field field} on the supplied {@link Class} with
* the supplied name and/or {@link Class type}. Searches all
* superclasses up to {@link Object}.
+ *
* @param clazz the class to introspect
- * @param name the name of the field (may be null if type is specified)
- * @param type the type of the field (may be null if name is specified)
+ * @param name the name of the field (may be null if type is
+ * specified)
+ * @param type the type of the field (may be null if name is
+ * specified)
* @return the corresponding Field object, or null if not found
*/
- public static Field findField(Class clazz, String name, Class type) {
+ public static Field findField(Class> clazz, String name, Class> type) {
Assert.notNull(clazz, "Class must not be null");
Assert.isTrue(name != null || type != null, "Either name or type of the field must be specified");
- Class searchType = clazz;
+ Class> searchType = clazz;
while (!Object.class.equals(searchType) && searchType != null) {
Field[] fields = searchType.getDeclaredFields();
for (Field field : fields) {
- if ((name == null || name.equals(field.getName())) &&
- (type == null || type.equals(field.getType()))) {
+ if ((name == null || name.equals(field.getName())) && (type == null || type.equals(field.getType()))) {
return field;
}
}
@@ -81,11 +85,13 @@ public abstract class ReflectionUtils {
/**
* Set the field represented by the supplied {@link Field field object} on
* the specified {@link Object target object} to the specified
- * value. In accordance with
- * {@link Field#set(Object, Object)} semantics, the new value is
- * automatically unwrapped if the underlying field has a primitive type.
- *
Thrown exceptions are handled via a call to
+ * value. In accordance with {@link Field#set(Object, Object)}
+ * semantics, the new value is automatically unwrapped if the underlying
+ * field has a primitive type.
+ *
+ * Thrown exceptions are handled via a call to
* {@link #handleReflectionException(Exception)}.
+ *
* @param field the field to set
* @param target the target object on which to set the field
* @param value the value to set; may be null
@@ -96,18 +102,20 @@ public abstract class ReflectionUtils {
}
catch (IllegalAccessException ex) {
handleReflectionException(ex);
- throw new IllegalStateException(
- "Unexpected reflection exception - " + ex.getClass().getName() + ": " + ex.getMessage());
+ throw new IllegalStateException("Unexpected reflection exception - " + ex.getClass().getName() + ": "
+ + ex.getMessage());
}
}
/**
* Get the field represented by the supplied {@link Field field object} on
* the specified {@link Object target object}. In accordance with
- * {@link Field#get(Object)} semantics, the returned value is
- * automatically wrapped if the underlying field has a primitive type.
- *
Thrown exceptions are handled via a call to + * {@link Field#get(Object)} semantics, the returned value is automatically + * wrapped if the underlying field has a primitive type. + *
+ * Thrown exceptions are handled via a call to
* {@link #handleReflectionException(Exception)}.
+ *
* @param field the field to get
* @param target the target object from which to get the field
* @return the field's current value
@@ -118,42 +126,48 @@ public abstract class ReflectionUtils {
}
catch (IllegalAccessException ex) {
handleReflectionException(ex);
- throw new IllegalStateException(
- "Unexpected reflection exception - " + ex.getClass().getName() + ": " + ex.getMessage());
+ throw new IllegalStateException("Unexpected reflection exception - " + ex.getClass().getName() + ": "
+ + ex.getMessage());
}
}
/**
- * Attempt to find a {@link Method} on the supplied class with the supplied name
- * and no parameters. Searches all superclasses up to Object.
- *
Returns null if no {@link Method} can be found.
+ * Attempt to find a {@link Method} on the supplied class with the supplied
+ * name and no parameters. Searches all superclasses up to
+ * Object.
+ *
+ * Returns null if no {@link Method} can be found.
+ *
* @param clazz the class to introspect
* @param name the name of the method
* @return the Method object, or null if none found
*/
- public static Method findMethod(Class clazz, String name) {
+ public static Method findMethod(Class> clazz, String name) {
return findMethod(clazz, name, new Class[0]);
}
/**
- * Attempt to find a {@link Method} on the supplied class with the supplied name
- * and parameter types. Searches all superclasses up to Object.
- *
Returns null if no {@link Method} can be found.
+ * Attempt to find a {@link Method} on the supplied class with the supplied
+ * name and parameter types. Searches all superclasses up to
+ * Object.
+ *
+ * Returns null if no {@link Method} can be found.
+ *
* @param clazz the class to introspect
* @param name the name of the method
- * @param paramTypes the parameter types of the method
- * (may be null to indicate any signature)
+ * @param paramTypes the parameter types of the method (may be
+ * null to indicate any signature)
* @return the Method object, or null if none found
*/
- public static Method findMethod(Class clazz, String name, Class... paramTypes) {
+ public static Method findMethod(Class> clazz, String name, Class>... paramTypes) {
Assert.notNull(clazz, "Class must not be null");
Assert.notNull(name, "Method name must not be null");
- Class searchType = clazz;
+ Class> searchType = clazz;
while (searchType != null) {
Method[] methods = (searchType.isInterface() ? searchType.getMethods() : searchType.getDeclaredMethods());
for (Method method : methods) {
- if (name.equals(method.getName()) &&
- (paramTypes == null || Arrays.equals(paramTypes, method.getParameterTypes()))) {
+ if (name.equals(method.getName())
+ && (paramTypes == null || Arrays.equals(paramTypes, method.getParameterTypes()))) {
return method;
}
}
@@ -166,7 +180,10 @@ public abstract class ReflectionUtils {
* Invoke the specified {@link Method} against the supplied target object
* with no arguments. The target object can be null when
* invoking a static {@link Method}.
- *
Thrown exceptions are handled via a call to {@link #handleReflectionException}. + *
+ * Thrown exceptions are handled via a call to
+ * {@link #handleReflectionException}.
+ *
* @param method the method to invoke
* @param target the target object to invoke the method on
* @return the invocation result, if any
@@ -180,7 +197,10 @@ public abstract class ReflectionUtils {
* Invoke the specified {@link Method} against the supplied target object
* with the supplied arguments. The target object can be null
* when invoking a static {@link Method}.
- *
Thrown exceptions are handled via a call to {@link #handleReflectionException}. + *
+ * Thrown exceptions are handled via a call to
+ * {@link #handleReflectionException}.
+ *
* @param method the method to invoke
* @param target the target object to invoke the method on
* @param args the invocation arguments (may be null)
@@ -197,8 +217,9 @@ public abstract class ReflectionUtils {
}
/**
- * Invoke the specified JDBC API {@link Method} against the supplied
- * target object with no arguments.
+ * Invoke the specified JDBC API {@link Method} against the supplied target
+ * object with no arguments.
+ *
* @param method the method to invoke
* @param target the target object to invoke the method on
* @return the invocation result, if any
@@ -210,8 +231,9 @@ public abstract class ReflectionUtils {
}
/**
- * Invoke the specified JDBC API {@link Method} against the supplied
- * target object with the supplied arguments.
+ * Invoke the specified JDBC API {@link Method} against the supplied target
+ * object with the supplied arguments.
+ *
* @param method the method to invoke
* @param target the target object to invoke the method on
* @param args the invocation arguments (may be null)
@@ -236,11 +258,13 @@ public abstract class ReflectionUtils {
}
/**
- * Handle the given reflection exception. Should only be called if
- * no checked exception is expected to be thrown by the target method.
- *
Throws the underlying RuntimeException or Error in case of an + * Handle the given reflection exception. Should only be called if no + * checked exception is expected to be thrown by the target method. + *
+ * Throws the underlying RuntimeException or Error in case of an * InvocationTargetException with such a root cause. Throws an * IllegalStateException with an appropriate message else. + * * @param ex the reflection exception to handle */ public static void handleReflectionException(Exception ex) { @@ -260,10 +284,12 @@ public abstract class ReflectionUtils { } /** - * Handle the given invocation target exception. Should only be called if - * no checked exception is expected to be thrown by the target method. - *
Throws the underlying RuntimeException or Error in case of such - * a root cause. Throws an IllegalStateException else. + * Handle the given invocation target exception. Should only be called if no + * checked exception is expected to be thrown by the target method. + *
+ * Throws the underlying RuntimeException or Error in case of such a root + * cause. Throws an IllegalStateException else. + * * @param ex the invocation target exception to handle */ public static void handleInvocationTargetException(InvocationTargetException ex) { @@ -272,12 +298,14 @@ public abstract class ReflectionUtils { /** * Rethrow the given {@link Throwable exception}, which is presumably the - * target exception of an {@link InvocationTargetException}. - * Should only be called if no checked exception is expected to be thrown by - * the target method. - *
Rethrows the underlying exception cast to an {@link RuntimeException} - * or {@link Error} if appropriate; otherwise, throws an + * target exception of an {@link InvocationTargetException}. Should + * only be called if no checked exception is expected to be thrown by the + * target method. + *
+ * Rethrows the underlying exception cast to an {@link RuntimeException} or + * {@link Error} if appropriate; otherwise, throws an * {@link IllegalStateException}. + * * @param ex the exception to rethrow * @throws RuntimeException the rethrown exception */ @@ -293,12 +321,14 @@ public abstract class ReflectionUtils { /** * Rethrow the given {@link Throwable exception}, which is presumably the - * target exception of an {@link InvocationTargetException}. - * Should only be called if no checked exception is expected to be thrown by - * the target method. - *
Rethrows the underlying exception cast to an {@link Exception} or + * target exception of an {@link InvocationTargetException}. Should + * only be called if no checked exception is expected to be thrown by the + * target method. + *
+ * Rethrows the underlying exception cast to an {@link Exception} or
* {@link Error} if appropriate; otherwise, throws an
* {@link IllegalStateException}.
+ *
* @param ex the exception to rethrow
* @throws Exception the rethrown exception (in case of a checked exception)
*/
@@ -314,6 +344,7 @@ public abstract class ReflectionUtils {
/**
* Throws an IllegalStateException with the given exception as root cause.
+ *
* @param ex the unexpected exception
*/
private static void handleUnexpectedException(Throwable ex) {
@@ -321,18 +352,19 @@ public abstract class ReflectionUtils {
}
/**
- * Determine whether the given method explicitly declares the given exception
- * or one of its superclasses, which means that an exception of that type
- * can be propagated as-is within a reflective invocation.
+ * Determine whether the given method explicitly declares the given
+ * exception or one of its superclasses, which means that an exception of
+ * that type can be propagated as-is within a reflective invocation.
+ *
* @param method the declaring method
* @param exceptionType the exception to throw
* @return true if the exception can be thrown as-is;
* false if it needs to be wrapped
*/
- public static boolean declaresException(Method method, Class exceptionType) {
+ public static boolean declaresException(Method method, Class> exceptionType) {
Assert.notNull(method, "Method must not be null");
- Class[] declaredExceptions = method.getExceptionTypes();
- for (Class declaredException : declaredExceptions) {
+ Class>[] declaredExceptions = method.getExceptionTypes();
+ for (Class> declaredException : declaredExceptions) {
if (declaredException.isAssignableFrom(exceptionType)) {
return true;
}
@@ -340,9 +372,9 @@ public abstract class ReflectionUtils {
return false;
}
-
/**
* Determine whether the given field is a "public static final" constant.
+ *
* @param field the field to check
*/
public static boolean isPublicStaticFinal(Field field) {
@@ -352,101 +384,107 @@ public abstract class ReflectionUtils {
/**
* Determine whether the given method is an "equals" method.
+ *
* @see java.lang.Object#equals
*/
public static boolean isEqualsMethod(Method method) {
if (method == null || !method.getName().equals("equals")) {
return false;
}
- Class[] paramTypes = method.getParameterTypes();
+ Class>[] paramTypes = method.getParameterTypes();
return (paramTypes.length == 1 && paramTypes[0] == Object.class);
}
/**
* Determine whether the given method is a "hashCode" method.
+ *
* @see java.lang.Object#hashCode
*/
public static boolean isHashCodeMethod(Method method) {
- return (method != null && method.getName().equals("hashCode") &&
- method.getParameterTypes().length == 0);
+ return (method != null && method.getName().equals("hashCode") && method.getParameterTypes().length == 0);
}
/**
* Determine whether the given method is a "toString" method.
+ *
* @see java.lang.Object#toString()
*/
public static boolean isToStringMethod(Method method) {
- return (method != null && method.getName().equals("toString") &&
- method.getParameterTypes().length == 0);
+ return (method != null && method.getName().equals("toString") && method.getParameterTypes().length == 0);
}
-
/**
- * Make the given field accessible, explicitly setting it accessible if necessary.
- * The setAccessible(true) method is only called when actually necessary,
- * to avoid unnecessary conflicts with a JVM SecurityManager (if active).
+ * Make the given field accessible, explicitly setting it accessible if
+ * necessary. The setAccessible(true) method is only called
+ * when actually necessary, to avoid unnecessary conflicts with a JVM
+ * SecurityManager (if active).
+ *
* @param field the field to make accessible
* @see java.lang.reflect.Field#setAccessible
*/
public static void makeAccessible(Field field) {
- if (!Modifier.isPublic(field.getModifiers()) ||
- !Modifier.isPublic(field.getDeclaringClass().getModifiers())) {
+ if (!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers())) {
field.setAccessible(true);
}
}
/**
- * Make the given method accessible, explicitly setting it accessible if necessary.
- * The setAccessible(true) method is only called when actually necessary,
- * to avoid unnecessary conflicts with a JVM SecurityManager (if active).
+ * Make the given method accessible, explicitly setting it accessible if
+ * necessary. The setAccessible(true) method is only called
+ * when actually necessary, to avoid unnecessary conflicts with a JVM
+ * SecurityManager (if active).
+ *
* @param method the method to make accessible
* @see java.lang.reflect.Method#setAccessible
*/
public static void makeAccessible(Method method) {
- if (!Modifier.isPublic(method.getModifiers()) ||
- !Modifier.isPublic(method.getDeclaringClass().getModifiers())) {
+ if (!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) {
method.setAccessible(true);
}
}
/**
- * Make the given constructor accessible, explicitly setting it accessible if necessary.
- * The setAccessible(true) method is only called when actually necessary,
- * to avoid unnecessary conflicts with a JVM SecurityManager (if active).
+ * Make the given constructor accessible, explicitly setting it accessible
+ * if necessary. The setAccessible(true) method is only called
+ * when actually necessary, to avoid unnecessary conflicts with a JVM
+ * SecurityManager (if active).
+ *
* @param ctor the constructor to make accessible
* @see java.lang.reflect.Constructor#setAccessible
*/
- public static void makeAccessible(Constructor ctor) {
- if (!Modifier.isPublic(ctor.getModifiers()) ||
- !Modifier.isPublic(ctor.getDeclaringClass().getModifiers())) {
+ public static void makeAccessible(Constructor> ctor) {
+ if (!Modifier.isPublic(ctor.getModifiers()) || !Modifier.isPublic(ctor.getDeclaringClass().getModifiers())) {
ctor.setAccessible(true);
}
}
-
/**
- * Perform the given callback operation on all matching methods of the
- * given class and superclasses.
- *
The same named method occurring on subclass and superclass will - * appear twice, unless excluded by a {@link MethodFilter}. + * Perform the given callback operation on all matching methods of the given + * class and superclasses. + *
+ * The same named method occurring on subclass and superclass will appear + * twice, unless excluded by a {@link MethodFilter}. + * * @param targetClass class to start looking at * @param mc the callback to invoke for each method * @see #doWithMethods(Class, MethodCallback, MethodFilter) */ - public static void doWithMethods(Class targetClass, MethodCallback mc) throws IllegalArgumentException { + public static void doWithMethods(Class> targetClass, MethodCallback mc) throws IllegalArgumentException { doWithMethods(targetClass, mc, null); } /** - * Perform the given callback operation on all matching methods of the - * given class and superclasses. - *
The same named method occurring on subclass and superclass will - * appear twice, unless excluded by the specified {@link MethodFilter}. + * Perform the given callback operation on all matching methods of the given + * class and superclasses. + *
+ * The same named method occurring on subclass and superclass will appear
+ * twice, unless excluded by the specified {@link MethodFilter}.
+ *
* @param targetClass class to start looking at
* @param mc the callback to invoke for each method
* @param mf the filter that determines the methods to apply the callback to
*/
- public static void doWithMethods(Class targetClass, MethodCallback mc, MethodFilter mf)
+ public static void doWithMethods(Class> targetClass, MethodCallback mc, MethodFilter mf)
throws IllegalArgumentException {
// Keep backing up the inheritance hierarchy.
@@ -460,22 +498,22 @@ public abstract class ReflectionUtils {
mc.doWith(method);
}
catch (IllegalAccessException ex) {
- throw new IllegalStateException(
- "Shouldn't be illegal to access method '" + method.getName() + "': " + ex);
+ throw new IllegalStateException("Shouldn't be illegal to access method '" + method.getName()
+ + "': " + ex);
}
}
targetClass = targetClass.getSuperclass();
- }
- while (targetClass != null);
+ } while (targetClass != null);
}
/**
- * Get all declared methods on the leaf class and all superclasses.
- * Leaf class methods are included first.
+ * Get all declared methods on the leaf class and all superclasses. Leaf
+ * class methods are included first.
*/
- public static Method[] getAllDeclaredMethods(Class leafClass) throws IllegalArgumentException {
+ public static Method[] getAllDeclaredMethods(Class> leafClass) throws IllegalArgumentException {
final List
* There are often situations in which it would be beneficial to be able to set
- * a non-public field or invoke a non-public
- * setter method when testing code involving, for example:
+ * a non-public field or invoke a non-public setter
+ * method when testing code involving, for example:
*
private or protected fields,
- * setter methods, and configuration methods.private or protected fields, setter
+ * methods, and configuration methods.
* name on the
* provided {@link Object target object} to the supplied value.
- * This method traverses the class hierarchy in search of the desired field. + *
+ * This method traverses the class hierarchy in search of the desired field.
* In addition, an attempt will be made to make non-public
* fields accessible, thus allowing one to set
* protected, private, and
* package-private fields.
+ *
* @param target the target object on which to set the field
* @param name the name of the field to set
* @param value the value to set
@@ -83,11 +84,13 @@ public class ReflectionTestUtils {
/**
* Set the {@link Field field} with the given name on the
* provided {@link Object target object} to the supplied value.
- *
This method traverses the class hierarchy in search of the desired field. + *
+ * This method traverses the class hierarchy in search of the desired field.
* In addition, an attempt will be made to make non-public
* fields accessible, thus allowing one to set
* protected, private, and
* package-private fields.
+ *
* @param target the target object on which to set the field
* @param name the name of the field to set
* @param value the value to set
@@ -96,7 +99,7 @@ public class ReflectionTestUtils {
* @see ReflectionUtils#makeAccessible(Field)
* @see ReflectionUtils#setField(Field, Object, Object)
*/
- public static void setField(Object target, String name, Object value, Class type) {
+ public static void setField(Object target, String name, Object value, Class> type) {
Assert.notNull(target, "Target object must not be null");
Field field = ReflectionUtils.findField(target.getClass(), name, type);
if (field == null) {
@@ -111,12 +114,15 @@ public class ReflectionTestUtils {
}
/**
- * Get the field with the given name from the provided
- * target object.
- *
This method traverses the class hierarchy in search of the desired field.
- * In addition, an attempt will be made to make non-public fields
- * accessible, thus allowing one to get protected,
- * private, and package-private fields.
+ * Get the field with the given name from the provided target
+ * object.
+ *
+ * This method traverses the class hierarchy in search of the desired field.
+ * In addition, an attempt will be made to make non-public
+ * fields accessible, thus allowing one to get
+ * protected, private, and
+ * package-private fields.
+ *
* @param target the target object on which to set the field
* @param name the name of the field to get
* @return the field's current value
@@ -141,16 +147,22 @@ public class ReflectionTestUtils {
/**
* Invoke the setter method with the given name on the supplied
* target object with the supplied value.
- *
This method traverses the class hierarchy in search of the desired
- * method. In addition, an attempt will be made to make non-public
- * methods accessible, thus allowing one to invoke protected,
- * private, and package-private setter methods.
- *
In addition, this method supports JavaBean-style property
- * names. For example, if you wish to set the name property
- * on the target object, you may pass either "name" or
+ *
+ * This method traverses the class hierarchy in search of the desired
+ * method. In addition, an attempt will be made to make non-
+ * public methods accessible, thus allowing one to
+ * invoke protected, private, and
+ * package-private setter methods.
+ *
+ * In addition, this method supports JavaBean-style property names.
+ * For example, if you wish to set the name property on the
+ * target object, you may pass either "name" or
* "setName" as the method name.
- * @param target the target object on which to invoke the specified setter method
- * @param name the name of the setter method to invoke or the corresponding property name
+ *
+ * @param target the target object on which to invoke the specified setter
+ * method
+ * @param name the name of the setter method to invoke or the corresponding
+ * property name
* @param value the value to provide to the setter method
* @see ReflectionUtils#findMethod(Class, String, Class[])
* @see ReflectionUtils#makeAccessible(Method)
@@ -163,26 +175,32 @@ public class ReflectionTestUtils {
/**
* Invoke the setter method with the given name on the supplied
* target object with the supplied value.
- *
This method traverses the class hierarchy in search of the desired
- * method. In addition, an attempt will be made to make non-public
- * methods accessible, thus allowing one to invoke protected,
- * private, and package-private setter methods.
- *
In addition, this method supports JavaBean-style property
- * names. For example, if you wish to set the name property
- * on the target object, you may pass either "name" or
+ *
+ * This method traverses the class hierarchy in search of the desired
+ * method. In addition, an attempt will be made to make non-
+ * public methods accessible, thus allowing one to
+ * invoke protected, private, and
+ * package-private setter methods.
+ *
+ * In addition, this method supports JavaBean-style property names.
+ * For example, if you wish to set the name property on the
+ * target object, you may pass either "name" or
* "setName" as the method name.
- * @param target the target object on which to invoke the specified setter method
- * @param name the name of the setter method to invoke or the corresponding property name
+ *
+ * @param target the target object on which to invoke the specified setter
+ * method
+ * @param name the name of the setter method to invoke or the corresponding
+ * property name
* @param value the value to provide to the setter method
* @param type the formal parameter type declared by the setter method
* @see ReflectionUtils#findMethod(Class, String, Class[])
* @see ReflectionUtils#makeAccessible(Method)
* @see ReflectionUtils#invokeMethod(Method, Object, Object[])
*/
- public static void invokeSetterMethod(Object target, String name, Object value, Class type) {
+ public static void invokeSetterMethod(Object target, String name, Object value, Class> type) {
Assert.notNull(target, "Target object must not be null");
Assert.notNull(name, "Method name must not be empty");
- Class[] paramTypes = (type != null ? new Class[] {type} : null);
+ Class>[] paramTypes = (type != null ? new Class>[] { type } : null);
String setterMethodName = name;
if (!name.startsWith(SETTER_PREFIX)) {
@@ -194,30 +212,36 @@ public class ReflectionTestUtils {
method = ReflectionUtils.findMethod(target.getClass(), setterMethodName, paramTypes);
}
if (method == null) {
- throw new IllegalArgumentException("Could not find setter method [" + setterMethodName +
- "] on target [" + target + "] with parameter type [" + type + "]");
+ throw new IllegalArgumentException("Could not find setter method [" + setterMethodName + "] on target ["
+ + target + "] with parameter type [" + type + "]");
}
if (logger.isDebugEnabled()) {
logger.debug("Invoking setter method [" + setterMethodName + "] on target [" + target + "]");
}
ReflectionUtils.makeAccessible(method);
- ReflectionUtils.invokeMethod(method, target, new Object[] {value});
+ ReflectionUtils.invokeMethod(method, target, new Object[] { value });
}
/**
* Invoke the getter method with the given name on the supplied
* target object with the supplied value.
- *
This method traverses the class hierarchy in search of the desired
- * method. In addition, an attempt will be made to make non-public
- * methods accessible, thus allowing one to invoke protected,
- * private, and package-private getter methods.
- *
In addition, this method supports JavaBean-style property
- * names. For example, if you wish to get the name property
- * on the target object, you may pass either "name" or
+ *
+ * This method traverses the class hierarchy in search of the desired
+ * method. In addition, an attempt will be made to make non-
+ * public methods accessible, thus allowing one to
+ * invoke protected, private, and
+ * package-private getter methods.
+ *
+ * In addition, this method supports JavaBean-style property names.
+ * For example, if you wish to get the name property on the
+ * target object, you may pass either "name" or
* "getName" as the method name.
- * @param target the target object on which to invoke the specified getter method
- * @param name the name of the getter method to invoke or the corresponding property name
+ *
+ * @param target the target object on which to invoke the specified getter
+ * method
+ * @param name the name of the getter method to invoke or the corresponding
+ * property name
* @return the value returned from the invocation
* @see ReflectionUtils#findMethod(Class, String, Class[])
* @see ReflectionUtils#makeAccessible(Method)
@@ -237,8 +261,8 @@ public class ReflectionTestUtils {
method = ReflectionUtils.findMethod(target.getClass(), getterMethodName);
}
if (method == null) {
- throw new IllegalArgumentException("Could not find getter method [" + getterMethodName +
- "] on target [" + target + "]");
+ throw new IllegalArgumentException("Could not find getter method [" + getterMethodName + "] on target ["
+ + target + "]");
}
if (logger.isDebugEnabled()) {