public class ConcreteClassGenerator
extends java.lang.Object
Constructor and Description |
---|
ConcreteClassGenerator() |
Modifier and Type | Method and Description |
---|---|
static <T> java.lang.reflect.Constructor<T> |
getConcreteConstructor(java.lang.Class<T> abstractClass,
java.lang.Class<?>... argTypes)
Get the constructor of the concrete, dynamic wrapper class of the given abstract class
with matching argument types.
|
static <T> java.lang.Class<? extends T> |
makeConcrete(java.lang.Class<T> abstractClass)
Takes an abstract class and returns a concrete implementation.
|
static <T> T |
newInstance(java.lang.Class<T> c) |
static <T> T |
newInstance(java.lang.Class<T> c,
java.lang.Class<?>[] paramTypes,
java.lang.Object[] params)
Utility method for safely invoking a constructor that we do
not expect to throw exceptions.
|
static <T,P> T |
newInstance(java.lang.Class<T> c,
java.lang.Class<? extends P> paramType,
P param) |
static <T,P1,P2> T |
newInstance(java.lang.Class<T> c,
java.lang.Class<? extends P1> paramType1,
P1 param1,
java.lang.Class<? extends P2> paramType2,
P2 param2) |
static <T,P1,P2,P3> |
newInstance(java.lang.Class<T> c,
java.lang.Class<? extends P1> paramType1,
P1 param1,
java.lang.Class<? extends P2> paramType2,
P2 param2,
java.lang.Class<? extends P3> paramType3,
P3 param3) |
static <T,P1,P2,P3,P4> |
newInstance(java.lang.Class<T> c,
java.lang.Class<? extends P1> paramType1,
P1 param1,
java.lang.Class<? extends P2> paramType2,
P2 param2,
java.lang.Class<? extends P3> paramType3,
P3 param3,
java.lang.Class<? extends P4> paramType4,
P4 param4) |
static <T> T |
newInstance(java.lang.reflect.Constructor<T> cons,
java.lang.Object... params)
Construct a new instance by the given constructor and its arguments.
|
public static <T> java.lang.reflect.Constructor<T> getConcreteConstructor(java.lang.Class<T> abstractClass, java.lang.Class<?>... argTypes) throws java.lang.ClassNotFoundException
the
- argTypes of the constructor to look for. null signify default constructor.java.lang.ClassNotFoundException
public static <T> java.lang.Class<? extends T> makeConcrete(java.lang.Class<T> abstractClass) throws java.lang.ClassNotFoundException
AbstractMethodError
.abstractClass
- the abstract classjava.lang.ClassNotFoundException
public static <T> T newInstance(java.lang.reflect.Constructor<T> cons, java.lang.Object... params)
public static <T> T newInstance(java.lang.Class<T> c, java.lang.Class<?>[] paramTypes, java.lang.Object[] params)
c
- the class to constructparamTypes
- the types of the parametersparams
- the parameter valuespublic static <T> T newInstance(java.lang.Class<T> c)
public static <T,P> T newInstance(java.lang.Class<T> c, java.lang.Class<? extends P> paramType, P param)
public static <T,P1,P2> T newInstance(java.lang.Class<T> c, java.lang.Class<? extends P1> paramType1, P1 param1, java.lang.Class<? extends P2> paramType2, P2 param2)
public static <T,P1,P2,P3> T newInstance(java.lang.Class<T> c, java.lang.Class<? extends P1> paramType1, P1 param1, java.lang.Class<? extends P2> paramType2, P2 param2, java.lang.Class<? extends P3> paramType3, P3 param3)
public static <T,P1,P2,P3,P4> T newInstance(java.lang.Class<T> c, java.lang.Class<? extends P1> paramType1, P1 param1, java.lang.Class<? extends P2> paramType2, P2 param2, java.lang.Class<? extends P3> paramType3, P3 param3, java.lang.Class<? extends P4> paramType4, P4 param4)