org.apache.commons.beanutils
public class ConstructorUtils extends Object
Utility reflection methods focussed on constructors, modelled after MethodUtils.
There is an issue when invoking public constructors contained in a default access superclass.
Reflection locates these constructors fine and correctly assigns them as public.
However, an IllegalAccessException
is thrown if the constructors is invoked.
ConstructorUtils
contains a workaround for this situation.
It will attempt to call setAccessible
on this constructor.
If this call succeeds, then the method can be invoked as normal.
This call will only succeed when the application has sufficient security privilages.
If this call fails then a warning will be logged and the method may fail.
Version: $Revision: 555824 $ $Date: 2007-07-13 01:27:15 +0100 (Fri, 13 Jul 2007) $
Method Summary | |
---|---|
static Constructor | getAccessibleConstructor(Class klass, Class parameterType)
Returns a constructor with single argument. |
static Constructor | getAccessibleConstructor(Class klass, Class[] parameterTypes)
Returns a constructor given a class and signature. |
static Constructor | getAccessibleConstructor(Constructor ctor)
Returns accessible version of the given constructor. |
static Object | invokeConstructor(Class klass, Object arg) Convenience method returning new instance of |
static Object | invokeConstructor(Class klass, Object[] args) Returns new instance of |
static Object | invokeConstructor(Class klass, Object[] args, Class[] parameterTypes) Returns new instance of The signatures should be assignment compatible. |
static Object | invokeExactConstructor(Class klass, Object arg) Convenience method returning new instance of |
static Object | invokeExactConstructor(Class klass, Object[] args) Returns new instance of |
static Object | invokeExactConstructor(Class klass, Object[] args, Class[] parameterTypes) Returns new instance of The signatures should match exactly. |
Parameters: klass the class to be constructed parameterType The constructor parameter type
Returns: null if matching accessible constructor can not be found.
See Also: Class#getConstructor getAccessibleConstructor
Parameters: klass the class to be constructed parameterTypes the parameter array
Returns: null if matching accessible constructor can not be found
See Also: Class#getConstructor getAccessibleConstructor
Parameters: ctor prototype constructor object.
Returns: null
if accessible constructor can not be found.
See Also: java.lang.SecurityManager
Convenience method returning new instance of klazz
using a single argument constructor.
The formal parameter type is inferred from the actual values of arg
.
See (Class, Object[], Class[])
for more details.
The signatures should be assignment compatible.
Parameters: klass the class to be constructed. arg the actual argument
Returns: new instance of klazz
Throws: NoSuchMethodException If the constructor cannot be found IllegalAccessException If an error occurs accessing the constructor InvocationTargetException If an error occurs invoking the constructor InstantiationException If an error occurs instantiating the class
See Also: (java.lang.Class, java.lang.Object[], java.lang.Class[])
Returns new instance of klazz
created using the actual arguments args
.
The formal parameter types are inferred from the actual values of args
.
See (Class, Object[], Class[])
for more details.
The signatures should be assignment compatible.
Parameters: klass the class to be constructed. args actual argument array
Returns: new instance of klazz
Throws: NoSuchMethodException If the constructor cannot be found IllegalAccessException If an error occurs accessing the constructor InvocationTargetException If an error occurs invoking the constructor InstantiationException If an error occurs instantiating the class
See Also: (java.lang.Class, java.lang.Object[], java.lang.Class[])
Returns new instance of klazz
created using constructor
with signature parameterTypes
and actual arguments args
.
The signatures should be assignment compatible.
Parameters: klass the class to be constructed. args actual argument array parameterTypes parameter types array
Returns: new instance of klazz
Throws: NoSuchMethodException if matching constructor cannot be found IllegalAccessException thrown on the constructor's invocation InvocationTargetException thrown on the constructor's invocation InstantiationException thrown on the constructor's invocation
See Also: Constructor#newInstance
Convenience method returning new instance of klazz
using a single argument constructor.
The formal parameter type is inferred from the actual values of arg
.
See (Class, Object[], Class[])
for more details.
The signatures should match exactly.
Parameters: klass the class to be constructed. arg the actual argument
Returns: new instance of klazz
Throws: NoSuchMethodException If the constructor cannot be found IllegalAccessException If an error occurs accessing the constructor InvocationTargetException If an error occurs invoking the constructor InstantiationException If an error occurs instantiating the class
See Also: (java.lang.Class, java.lang.Object[], java.lang.Class[])
Returns new instance of klazz
created using the actual arguments args
.
The formal parameter types are inferred from the actual values of args
.
See (Class, Object[], Class[])
for more details.
The signatures should match exactly.
Parameters: klass the class to be constructed. args actual argument array
Returns: new instance of klazz
Throws: NoSuchMethodException If the constructor cannot be found IllegalAccessException If an error occurs accessing the constructor InvocationTargetException If an error occurs invoking the constructor InstantiationException If an error occurs instantiating the class
See Also: (java.lang.Class, java.lang.Object[], java.lang.Class[])
Returns new instance of klazz
created using constructor
with signature parameterTypes
and actual arguments
args
.
The signatures should match exactly.
Parameters: klass the class to be constructed. args actual argument array parameterTypes parameter types array
Returns: new instance of klazz
Throws: NoSuchMethodException if matching constructor cannot be found IllegalAccessException thrown on the constructor's invocation InvocationTargetException thrown on the constructor's invocation InstantiationException thrown on the constructor's invocation
See Also: Constructor#newInstance