Class Reflector
- java.lang.Object
-
- org.codehaus.plexus.util.reflection.Reflector
-
public final class Reflector extends Object
Utility class used to instantiate an object using reflection. This utility hides many of the gory details needed to do this.- Author:
- John Casey
-
-
Constructor Summary
Constructors Constructor Description Reflector()Ensure no instances of Reflector are created...this is a utility.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> Constructor<T>getConstructor(Class<T> targetClass, Class[] params)Return the constructor, checking the cache first and storing in cache if not already there..ObjectgetField(Object target, String fieldName)ObjectgetField(Object target, String fieldName, boolean breakAccessibility)MethodgetMethod(Class targetClass, String methodName, Class[] params)Return the method, checking the cache first and storing in cache if not already there..ObjectgetObjectProperty(Object target, String propertyName)<T> TgetSingleton(Class<T> theClass, Object[] initParams)Retrieve the singleton instance of a class, given the array of parameters...ObjectgetStaticField(Class targetClass, String fieldName)Objectinvoke(Object target, String methodName, Object[] params)Invoke the specified method on the specified target with the specified params...ObjectinvokeStatic(Class targetClass, String methodName, Object[] params)Invoke the specified static method with the specified params...<T> TnewInstance(Class<T> theClass, Object[] params)Create a new instance of a class, given the array of parameters...
-
-
-
Method Detail
-
newInstance
public <T> T newInstance(Class<T> theClass, Object[] params) throws ReflectorException
Create a new instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...- Type Parameters:
T- the type- Parameters:
theClass- The class to instantiateparams- The parameters to pass to the constructor- Returns:
- The instantiated object
- Throws:
ReflectorException- In case anything goes wrong here...
-
getSingleton
public <T> T getSingleton(Class<T> theClass, Object[] initParams) throws ReflectorException
Retrieve the singleton instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...- Type Parameters:
T- the type- Parameters:
theClass- The class to retrieve the singleton ofinitParams- The parameters to pass to the constructor- Returns:
- The singleton object
- Throws:
ReflectorException- In case anything goes wrong here...
-
invoke
public Object invoke(Object target, String methodName, Object[] params) throws ReflectorException
Invoke the specified method on the specified target with the specified params...- Parameters:
target- The target of the invocationmethodName- The method name to invokeparams- The parameters to pass to the method invocation- Returns:
- The result of the method call
- Throws:
ReflectorException- In case of an error looking up or invoking the method.
-
getStaticField
public Object getStaticField(Class targetClass, String fieldName) throws ReflectorException
- Throws:
ReflectorException
-
getField
public Object getField(Object target, String fieldName) throws ReflectorException
- Throws:
ReflectorException
-
getField
public Object getField(Object target, String fieldName, boolean breakAccessibility) throws ReflectorException
- Throws:
ReflectorException
-
invokeStatic
public Object invokeStatic(Class targetClass, String methodName, Object[] params) throws ReflectorException
Invoke the specified static method with the specified params...- Parameters:
targetClass- The target class of the invocationmethodName- The method name to invokeparams- The parameters to pass to the method invocation- Returns:
- The result of the method call
- Throws:
ReflectorException- In case of an error looking up or invoking the method.
-
getConstructor
public <T> Constructor<T> getConstructor(Class<T> targetClass, Class[] params) throws ReflectorException
Return the constructor, checking the cache first and storing in cache if not already there..- Type Parameters:
T- the type- Parameters:
targetClass- The class to get the constructor fromparams- The classes of the parameters which the constructor should match.- Returns:
- the Constructor object that matches.
- Throws:
ReflectorException- In case we can't retrieve the proper constructor.
-
getObjectProperty
public Object getObjectProperty(Object target, String propertyName) throws ReflectorException
- Throws:
ReflectorException
-
getMethod
public Method getMethod(Class targetClass, String methodName, Class[] params) throws ReflectorException
Return the method, checking the cache first and storing in cache if not already there..- Parameters:
targetClass- The class to get the method fromparams- The classes of the parameters which the method should match.methodName- the method name- Returns:
- the Method object that matches.
- Throws:
ReflectorException- In case we can't retrieve the proper method.
-
-