public class ReflectionUtil
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
ReflectionUtil.ConstructorWrapper |
private static class |
ReflectionUtil.MethodWrapper |
private static class |
ReflectionUtil.Wrapper |
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String[] |
EMPTY_STRING |
protected static java.lang.String[] |
PRIMITIVE_NAMES |
protected static java.lang.Class[] |
PRIMITIVES |
Modifier | Constructor and Description |
---|---|
private |
ReflectionUtil() |
Modifier and Type | Method and Description |
---|---|
(package private) static java.lang.Object[] |
buildParameters(ELContext context,
java.lang.Class<?>[] parameterTypes,
boolean isVarArgs,
java.lang.Object[] params) |
static java.lang.reflect.Method |
findMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>[] paramTypes,
java.lang.Object[] paramValues) |
private static ReflectionUtil.Wrapper |
findMostSpecificWrapper(java.util.List<ReflectionUtil.Wrapper> candidates,
java.lang.Class<?>[] matchingTypes,
boolean elSpecific,
java.lang.String errorMsg) |
private static ReflectionUtil.Wrapper |
findWrapper(java.lang.Class<?> clazz,
java.util.List<ReflectionUtil.Wrapper> wrappers,
java.lang.String name,
java.lang.Class<?>[] paramTypes,
java.lang.Object[] paramValues) |
static java.lang.Class |
forName(java.lang.String name) |
protected static java.lang.Class |
forNamePrimitive(java.lang.String name) |
private static java.lang.Class<?> |
getBoxingTypeIfPrimitive(java.lang.Class<?> clazz) |
private static java.lang.Class<?>[] |
getComparingParamTypesForVarArgsMethod(java.lang.Class<?>[] paramTypes,
int length) |
(package private) static java.lang.reflect.Constructor<?> |
getConstructor(java.lang.Class<?> type,
java.lang.reflect.Constructor<?> c) |
(package private) static java.lang.reflect.Method |
getMethod(java.lang.Class<?> type,
java.lang.reflect.Method m) |
static java.beans.PropertyDescriptor |
getPropertyDescriptor(java.lang.Object base,
java.lang.Object property) |
private static java.lang.Class<?>[] |
getTypesFromValues(java.lang.Object[] values) |
static java.lang.Object |
invokeMethod(ELContext context,
java.lang.reflect.Method m,
java.lang.Object base,
java.lang.Object[] params) |
(package private) static boolean |
isAssignableFrom(java.lang.Class<?> src,
java.lang.Class<?> target) |
private static boolean |
isCoercibleFrom(java.lang.Object src,
java.lang.Class<?> target) |
private static int |
isMoreSpecific(java.lang.Class<?> type1,
java.lang.Class<?> type2,
java.lang.Class<?> matchingType,
boolean elSpecific) |
private static int |
isMoreSpecific(ReflectionUtil.Wrapper wrapper1,
ReflectionUtil.Wrapper wrapper2,
java.lang.Class<?>[] matchingTypes,
boolean elSpecific) |
private static java.lang.String |
paramString(java.lang.Class<?>[] types) |
static java.lang.Class[] |
toTypeArray(java.lang.String[] s)
Converts an array of Class names to Class types
|
static java.lang.String[] |
toTypeNameArray(java.lang.Class[] c)
Converts an array of Class types to Class names
|
protected static final java.lang.String[] EMPTY_STRING
protected static final java.lang.String[] PRIMITIVE_NAMES
protected static final java.lang.Class[] PRIMITIVES
public static java.lang.Class forName(java.lang.String name) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
protected static java.lang.Class forNamePrimitive(java.lang.String name)
public static java.lang.Class[] toTypeArray(java.lang.String[] s) throws java.lang.ClassNotFoundException
s
- java.lang.ClassNotFoundException
public static java.lang.String[] toTypeNameArray(java.lang.Class[] c)
c
- public static java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.Object base, java.lang.Object property) throws ELException, PropertyNotFoundException
base
- The base objectproperty
- The propertyELException
PropertyNotFoundException
public static java.lang.Object invokeMethod(ELContext context, java.lang.reflect.Method m, java.lang.Object base, java.lang.Object[] params)
public static java.lang.reflect.Method findMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
private static ReflectionUtil.Wrapper findWrapper(java.lang.Class<?> clazz, java.util.List<ReflectionUtil.Wrapper> wrappers, java.lang.String name, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
private static ReflectionUtil.Wrapper findMostSpecificWrapper(java.util.List<ReflectionUtil.Wrapper> candidates, java.lang.Class<?>[] matchingTypes, boolean elSpecific, java.lang.String errorMsg)
private static int isMoreSpecific(ReflectionUtil.Wrapper wrapper1, ReflectionUtil.Wrapper wrapper2, java.lang.Class<?>[] matchingTypes, boolean elSpecific)
private static int isMoreSpecific(java.lang.Class<?> type1, java.lang.Class<?> type2, java.lang.Class<?> matchingType, boolean elSpecific)
private static java.lang.Class<?> getBoxingTypeIfPrimitive(java.lang.Class<?> clazz)
private static java.lang.Class<?>[] getComparingParamTypesForVarArgsMethod(java.lang.Class<?>[] paramTypes, int length)
private static final java.lang.String paramString(java.lang.Class<?>[] types)
static boolean isAssignableFrom(java.lang.Class<?> src, java.lang.Class<?> target)
private static boolean isCoercibleFrom(java.lang.Object src, java.lang.Class<?> target)
private static java.lang.Class<?>[] getTypesFromValues(java.lang.Object[] values)
static java.lang.reflect.Method getMethod(java.lang.Class<?> type, java.lang.reflect.Method m)
static java.lang.reflect.Constructor<?> getConstructor(java.lang.Class<?> type, java.lang.reflect.Constructor<?> c)
static java.lang.Object[] buildParameters(ELContext context, java.lang.Class<?>[] parameterTypes, boolean isVarArgs, java.lang.Object[] params)