public class

ConstructorUtils

extends Object
java.lang.Object
   ↳ org.apache.commons.beanutils.ConstructorUtils

Class Overview

Utility reflection methods focussed on constructors, modelled after MethodUtils.

Known Limitations

Accessing Public Constructors In A Default Access Superclass

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.

Summary

Public Constructors
ConstructorUtils()
Public Methods
static Constructor getAccessibleConstructor(Class klass, Class parameterType)
Returns a constructor with single argument.
static Constructor getAccessibleConstructor(Constructor ctor)
Returns accessible version of the given constructor.
static Constructor getAccessibleConstructor(Class klass, Class[] parameterTypes)
Returns a constructor given a class and signature.
static Object invokeConstructor(Class klass, Object[] args)

Returns new instance of klazz created using the actual arguments args.

static Object invokeConstructor(Class klass, Object[] args, Class[] parameterTypes)

Returns new instance of klazz created using constructor with signature parameterTypes and actual arguments args.

static Object invokeConstructor(Class klass, Object arg)

Convenience method returning new instance of klazz using a single argument constructor.

static Object invokeExactConstructor(Class klass, Object arg)

Convenience method returning new instance of klazz using a single argument constructor.

static Object invokeExactConstructor(Class klass, Object[] args)

Returns new instance of klazz created using the actual arguments args.

static Object invokeExactConstructor(Class klass, Object[] args, Class[] parameterTypes)

Returns new instance of klazz created using constructor with signature parameterTypes and actual arguments args.

[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public ConstructorUtils ()

Public Methods

public static Constructor getAccessibleConstructor (Class klass, Class parameterType)

Returns a constructor with single argument.

Parameters
klass the class to be constructed
parameterType The constructor parameter type
Returns
  • null if matching accessible constructor can not be found.

public static Constructor getAccessibleConstructor (Constructor ctor)

Returns accessible version of the given constructor.

Parameters
ctor prototype constructor object.
Returns
  • null if accessible constructor can not be found.
See Also
  • java.lang.SecurityManager

public static Constructor getAccessibleConstructor (Class klass, Class[] parameterTypes)

Returns a constructor given a class and signature.

Parameters
klass the class to be constructed
parameterTypes the parameter array
Returns
  • null if matching accessible constructor can not be found

public static Object invokeConstructor (Class klass, Object[] args)

Returns new instance of klazz created using the actual arguments args. The formal parameter types are inferred from the actual values of args. See invokeExactConstructor(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

public static Object invokeConstructor (Class klass, Object[] args, Class[] parameterTypes)

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

public static Object invokeConstructor (Class klass, Object arg)

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 invokeExactConstructor(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

public static Object invokeExactConstructor (Class klass, Object arg)

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 invokeExactConstructor(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

public static Object invokeExactConstructor (Class klass, Object[] args)

Returns new instance of klazz created using the actual arguments args. The formal parameter types are inferred from the actual values of args. See invokeExactConstructor(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

public static Object invokeExactConstructor (Class klass, Object[] args, Class[] parameterTypes)

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