diff --git a/src/main/java/org/apache/commons/lang3/reflect/ConstructorUtils.java b/src/main/java/org/apache/commons/lang3/reflect/ConstructorUtils.java index b893b3c65..e11f10a82 100644 --- a/src/main/java/org/apache/commons/lang3/reflect/ConstructorUtils.java +++ b/src/main/java/org/apache/commons/lang3/reflect/ConstructorUtils.java @@ -24,20 +24,22 @@ import org.apache.commons.lang3.ClassUtils; /** - *
Utility reflection methods focussed on constructors, modelled after {@link 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.
Utility reflection methods focussed on constructors, modelled after + * {@link 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.
ConstructorUtils instances should NOT be constructed in standard programming. - * Instead, the class should be used as + *
ConstructorUtils instances should NOT be constructed in standard
+ * programming. Instead, the class should be used as
* ConstructorUtils.invokeConstructor(cls, args)
.
This constructor is public to permit tools that require a JavaBean * instance to operate.
*/ @@ -65,26 +67,31 @@ public ConstructorUtils() { } /** - *Returns new instance of klazz
created using the actual arguments args
.
- * The formal parameter types are inferred from the actual values of args
.
- * See {@link #invokeExactConstructor(Class, Object[], Class[])} for more details.
Returns new instance of klazz
created using the actual
+ * arguments args
. The formal parameter types are inferred from
+ * the actual values of args
. See
+ * {@link #invokeExactConstructor(Class, Object[], Class[])} for more
+ * details.
The signatures should be assignment compatible.
- * + * * @param cls the class to be constructed. * @param args actual argument array * @return new instance ofklazz
- *
+ *
* @throws NoSuchMethodException If the constructor cannot be found
- * @throws IllegalAccessException If an error occurs accessing the constructor
- * @throws InvocationTargetException If an error occurs invoking the constructor
+ * @throws IllegalAccessException If an error occurs accessing the
+ * constructor
+ * @throws InvocationTargetException If an error occurs invoking the
+ * constructor
* @throws InstantiationException If an error occurs instantiating the class
- *
- * @see #invokeConstructor(java.lang.Class, java.lang.Object[], java.lang.Class[])
+ *
+ * @see #invokeConstructor(java.lang.Class, java.lang.Object[],
+ * java.lang.Class[])
*/
public static Returns new instance of klazz
created using constructor
- * with signature parameterTypes
and actual arguments args
.
parameterTypes
and actual arguments
+ * args
.
+ *
* The signatures should be assignment compatible.
- * + * * @param cls the class to be constructed. * @param args actual argument array * @param parameterTypes parameter types array * @return new instance ofklazz
- *
+ *
* @throws NoSuchMethodException if matching constructor cannot be found
* @throws IllegalAccessException thrown on the constructor's invocation
* @throws InvocationTargetException thrown on the constructor's invocation
* @throws InstantiationException thrown on the constructor's invocation
* @see Constructor#newInstance
*/
- public static Returns new instance of klazz
created using the actual arguments args
.
- * The formal parameter types are inferred from the actual values of args
.
- * See {@link #invokeExactConstructor(Class, Object[], Class[])} for more details.
Returns new instance of klazz
created using the actual
+ * arguments args
. The formal parameter types are inferred from
+ * the actual values of args
. See
+ * {@link #invokeExactConstructor(Class, Object[], Class[])} for more
+ * details.
The signatures should match exactly.
- * + * * @param cls the class to be constructed. * @param args actual argument array * @return new instance ofklazz
- *
+ *
* @throws NoSuchMethodException If the constructor cannot be found
- * @throws IllegalAccessException If an error occurs accessing the constructor
- * @throws InvocationTargetException If an error occurs invoking the constructor
+ * @throws IllegalAccessException If an error occurs accessing the
+ * constructor
+ * @throws InvocationTargetException If an error occurs invoking the
+ * constructor
* @throws InstantiationException If an error occurs instantiating the class
- *
- * @see #invokeExactConstructor(java.lang.Class, java.lang.Object[], java.lang.Class[])
+ *
+ * @see #invokeExactConstructor(java.lang.Class, java.lang.Object[],
+ * java.lang.Class[])
*/
public static Returns new instance of klazz
created using constructor
* with signature parameterTypes
and actual arguments
* args
.
The signatures should match exactly.
- * + * * @param cls the class to be constructed. * @param args actual argument array * @param parameterTypes parameter types array * @return new instance ofklazz
- *
+ *
* @throws NoSuchMethodException if matching constructor cannot be found
* @throws IllegalAccessException thrown on the constructor's invocation
* @throws InvocationTargetException thrown on the constructor's invocation
@@ -182,9 +193,8 @@ public static Find an accessible constructor with compatible parameters. - * Compatible parameters mean that every method parameter is assignable from - * the given parameters. In other words, it finds constructor that will take - * the parameters given.
- * + *Find an accessible constructor with compatible parameters. Compatible + * parameters mean that every method parameter is assignable from the given + * parameters. In other words, it finds constructor that will take the + * parameters given.
+ * *First it checks if there is constructor matching the exact signature. - * If no such, all the constructors of the class are tested if their signatures - * are assignment compatible with the parameter types. - * The first matching constructor is returned.
- * + * If no such, all the constructors of the class are tested if their + * signatures are assignment compatible with the parameter types. The first + * matching constructor is returned. + * * @param cls find constructor for this class * @param parameterTypes find method with compatible parameters - * @return a valid Constructor object. If there's no matching constructor, returnsnull
.
+ * @return a valid Constructor object. If there's no matching constructor,
+ * returns null
.
*/
public static