Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.beanutils
Class ConstructorUtils

    java.lang.Object
      |
      +--org.apache.commons.beanutils.ConstructorUtils

public class ConstructorUtils
extends java.lang.Object

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.

Version:
  $Revision: 555824 $ $Date: 2007-07-13 01:27:15 +0100 (Fri, 13 Jul 2007) $
Author:
  Craig R. McClanahan, Ralph Schaer, Chris Audley, Rey Francois, Gregor Rayman, Jan Sorensen, Robert Burrell Donkin, Rodney Waldhoff

Constructor Summary
`ConstructorUtils()`

Method Summary
`static java.lang.reflect.Constructor` | `getAccessibleConstructor(java.lang.Class klass, java.lang.Class parameterType)` Returns a constructor with single argument.
`static java.lang.reflect.Constructor` | `getAccessibleConstructor(java.lang.Class klass, java.lang.Class[] parameterTypes)` Returns a constructor given a class and signature.
`static java.lang.reflect.Constructor` | `getAccessibleConstructor(java.lang.reflect.Constructor ctor)` Returns accessible version of the given constructor.
`static java.lang.Object` | `invokeConstructor(java.lang.Class klass, java.lang.Object arg)` Convenience method returning new instance of `klazz` using a single argument constructor.
`static java.lang.Object` | `invokeConstructor(java.lang.Class klass, java.lang.Object[] args)` Returns new instance of `klazz` created using the actual arguments `args`.
`static java.lang.Object` | `invokeConstructor(java.lang.Class klass, java.lang.Object[] args, java.lang.Class[] parameterTypes)` Returns new instance of `klazz` created using constructor with signature `parameterTypes` and actual arguments `args`.
`static java.lang.Object` | `invokeExactConstructor(java.lang.Class klass, java.lang.Object arg)` Convenience method returning new instance of `klazz` using a single argument constructor.
`static java.lang.Object` | `invokeExactConstructor(java.lang.Class klass, java.lang.Object[] args)` Returns new instance of `klazz` created using the actual arguments `args`.
`static java.lang.Object` | `invokeExactConstructor(java.lang.Class klass, java.lang.Object[] args, java.lang.Class[] parameterTypes)` Returns new instance of `klazz` created using constructor with signature `parameterTypes` and actual arguments `args`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ConstructorUtils

    public ConstructorUtils()

Method Detail

### invokeConstructor

    public static java.lang.Object invokeConstructor(java.lang.Class klass,
                                                     java.lang.Object arg)
                                              throws java.lang.NoSuchMethodException,
                                                     java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.InstantiationException

  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:
    `java.lang.NoSuchMethodException` - If the constructor cannot be found
    `java.lang.IllegalAccessException` - If an error occurs accessing the constructor
    `java.lang.reflect.InvocationTargetException` - If an error occurs invoking the constructor
    `java.lang.InstantiationException` - If an error occurs instantiating the class
  See Also:
    `invokeConstructor(java.lang.Class, java.lang.Object[], java.lang.Class[])`

### invokeConstructor

    public static java.lang.Object invokeConstructor(java.lang.Class klass,
                                                     java.lang.Object[] args)
                                              throws java.lang.NoSuchMethodException,
                                                     java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.InstantiationException

  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:
    `java.lang.NoSuchMethodException` - If the constructor cannot be found
    `java.lang.IllegalAccessException` - If an error occurs accessing the constructor
    `java.lang.reflect.InvocationTargetException` - If an error occurs invoking the constructor
    `java.lang.InstantiationException` - If an error occurs instantiating the class
  See Also:
    `invokeConstructor(java.lang.Class, java.lang.Object[], java.lang.Class[])`

### invokeConstructor

    public static java.lang.Object invokeConstructor(java.lang.Class klass,
                                                     java.lang.Object[] args,
                                                     java.lang.Class[] parameterTypes)
                                              throws java.lang.NoSuchMethodException,
                                                     java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.InstantiationException

  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:
    `java.lang.NoSuchMethodException` - if matching constructor cannot be found
    `java.lang.IllegalAccessException` - thrown on the constructor's invocation
    `java.lang.reflect.InvocationTargetException` - thrown on the constructor's invocation
    `java.lang.InstantiationException` - thrown on the constructor's invocation
  See Also:
    `Constructor.newInstance(java.lang.Object[])`

### invokeExactConstructor

    public static java.lang.Object invokeExactConstructor(java.lang.Class klass,
                                                          java.lang.Object arg)
                                                   throws java.lang.NoSuchMethodException,
                                                          java.lang.IllegalAccessException,
                                                          java.lang.reflect.InvocationTargetException,
                                                          java.lang.InstantiationException

  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:
    `java.lang.NoSuchMethodException` - If the constructor cannot be found
    `java.lang.IllegalAccessException` - If an error occurs accessing the constructor
    `java.lang.reflect.InvocationTargetException` - If an error occurs invoking the constructor
    `java.lang.InstantiationException` - If an error occurs instantiating the class
  See Also:
    `invokeExactConstructor(java.lang.Class, java.lang.Object[], java.lang.Class[])`

### invokeExactConstructor

    public static java.lang.Object invokeExactConstructor(java.lang.Class klass,
                                                          java.lang.Object[] args)
                                                   throws java.lang.NoSuchMethodException,
                                                          java.lang.IllegalAccessException,
                                                          java.lang.reflect.InvocationTargetException,
                                                          java.lang.InstantiationException

  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:
    `java.lang.NoSuchMethodException` - If the constructor cannot be found
    `java.lang.IllegalAccessException` - If an error occurs accessing the constructor
    `java.lang.reflect.InvocationTargetException` - If an error occurs invoking the constructor
    `java.lang.InstantiationException` - If an error occurs instantiating the class
  See Also:
    `invokeExactConstructor(java.lang.Class, java.lang.Object[], java.lang.Class[])`

### invokeExactConstructor

    public static java.lang.Object invokeExactConstructor(java.lang.Class klass,
                                                          java.lang.Object[] args,
                                                          java.lang.Class[] parameterTypes)
                                                   throws java.lang.NoSuchMethodException,
                                                          java.lang.IllegalAccessException,
                                                          java.lang.reflect.InvocationTargetException,
                                                          java.lang.InstantiationException

  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:
    `java.lang.NoSuchMethodException` - if matching constructor cannot be found
    `java.lang.IllegalAccessException` - thrown on the constructor's invocation
    `java.lang.reflect.InvocationTargetException` - thrown on the constructor's invocation
    `java.lang.InstantiationException` - thrown on the constructor's invocation
  See Also:
    `Constructor.newInstance(java.lang.Object[])`

### getAccessibleConstructor

    public static java.lang.reflect.Constructor getAccessibleConstructor(java.lang.Class klass,
                                                                         java.lang.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.
  See Also:
    `Class.getConstructor(java.lang.Class[])`, `getAccessibleConstructor(java.lang.reflect.Constructor)`

### getAccessibleConstructor

    public static java.lang.reflect.Constructor getAccessibleConstructor(java.lang.Class klass,
                                                                         java.lang.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
  See Also:
    `Class.getConstructor(java.lang.Class[])`, `getAccessibleConstructor(java.lang.reflect.Constructor)`

### getAccessibleConstructor

    public static java.lang.reflect.Constructor getAccessibleConstructor(java.lang.reflect.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`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2007 The Apache Software Foundation. All Rights Reserved.