Package com.tangosol.util.fsm
Class ReflectionHelper
- java.lang.Object
-
- com.tangosol.util.fsm.ReflectionHelper
-
public class ReflectionHelper extends Object
A collection of utilities to assist in using Reflection to create objects.- Since:
- Coherence 12.2.1
- Author:
- Christer Fahlgren, Brian Oliver
-
-
Constructor Summary
Constructors Constructor Description ReflectionHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ObjectcreateObject(String sClassName, ClassLoader classLoader)Create an Object via reflection (using the specifiedClassLoader).static ObjectcreateObject(String sClassName, Object[] constructorParameterList, ClassLoader classLoader)Create an Object via reflection (using the specifiedClassLoader).protected static Class<?>[]getClassArrayFromObjectArray(Object[] objectArray)Returns an array of Class objects representing the class of the objects in the parameter.static Constructor<?>getCompatibleConstructor(Class<?> clazz, Class<?>[] parameterTypes)Get a compatible constructor to the supplied parameter types.static MethodgetCompatibleMethod(Class<?> clazz, String methodName, Object... arguments)Obtains theMethodthat is compatible to the supplied parameter types.static Class<?>getConcreteType(Type type)Obtains the concrete (non-parameterized)Classgiven a specified (possibly parameterized) type.static booleanisAssignableFrom(Type x, Type y)Determines if two types are assignment compatible, that is, the type of y can be assigned to type x.static booleanisAssignablePrimitive(Class<?> clzPrimitive, Class<?> clzWrapper)Determines if a primitive type is assignable to a wrapper type.static booleanisCompatibleMethod(Method method, int modifiers, Type returnType, Type... parameterTypes)Determines if the signature of aMethodis compatible with the specified parameters.
-
-
-
Method Detail
-
getCompatibleConstructor
public static Constructor<?> getCompatibleConstructor(Class<?> clazz, Class<?>[] parameterTypes)
Get a compatible constructor to the supplied parameter types.- Parameters:
clazz- the class which we want to constructparameterTypes- the types required of the constructor- Returns:
- a compatible constructor or null if none exists
-
isAssignablePrimitive
public static boolean isAssignablePrimitive(Class<?> clzPrimitive, Class<?> clzWrapper)
Determines if a primitive type is assignable to a wrapper type.- Parameters:
clzPrimitive- a primitive class typeclzWrapper- a wrapper class type- Returns:
- true if primitive and wrapper are assignment compatible
-
getCompatibleMethod
public static Method getCompatibleMethod(Class<?> clazz, String methodName, Object... arguments)
Obtains theMethodthat is compatible to the supplied parameter types.
-
createObject
public static Object createObject(String sClassName, ClassLoader classLoader) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
Create an Object via reflection (using the specified
ClassLoader).- Parameters:
sClassName- the name of the class to instantiate.classLoader- theClassLoaderto use to load the class.- Returns:
- A new instance of the class specified by the className
- Throws:
ClassNotFoundException- if the class is not foundNoSuchMethodException- if there is no such constructorInstantiationException- if it failed to instantiateIllegalAccessException- if security doesn't allow the callInvocationTargetException- if the constructor failed
-
createObject
public static Object createObject(String sClassName, Object[] constructorParameterList, ClassLoader classLoader) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
Create an Object via reflection (using the specified
ClassLoader).- Parameters:
sClassName- the name of the class to instantiate.constructorParameterList- the set of parameters to pass to the constructorclassLoader- theClassLoaderto use to load the class.- Returns:
- A new instance of the class specified by the className
- Throws:
ClassNotFoundException- if the class is not foundNoSuchMethodException- if there is no such constructorInstantiationException- if it failed to instantiateIllegalAccessException- if security doesn't allow the callInvocationTargetException- if the constructor failed
-
getClassArrayFromObjectArray
protected static Class<?>[] getClassArrayFromObjectArray(Object[] objectArray)
Returns an array of Class objects representing the class of the objects in the parameter.- Parameters:
objectArray- the array of Objects- Returns:
- an array of Classes representing the class of the Objects
-
getConcreteType
public static Class<?> getConcreteType(Type type)
Obtains the concrete (non-parameterized)Classgiven a specified (possibly parameterized) type.- Parameters:
type- the type- Returns:
- the concrete
Classornullif there is no concrete class.
-
isAssignableFrom
public static boolean isAssignableFrom(Type x, Type y)
Determines if two types are assignment compatible, that is, the type of y can be assigned to type x.- Parameters:
x- the first typey- the second type- Returns:
- if a value of type y is assignable to the type x
-
-