public final class ClassUtils
extends java.lang.Object
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> java.lang.Class<T> |
castGenericType(java.lang.Class<?> type,
T castToType)
Class泛型参数强制转型
.
|
static java.lang.reflect.Field |
findField(java.lang.Class<?> type,
FieldMatcher matcher)
查找并返回第一个符合条件的Field.
|
static java.util.Collection<java.lang.reflect.Field> |
findFields(java.lang.Class<?> type,
FieldMatcher matcher)
查找并返回所有符合条件Field的集合.
|
static java.lang.reflect.Method |
findMethod(java.lang.Class<?> type,
MethodMatcher matcher)
查找并返回第一个符合条件的Method.
|
static java.util.Collection<java.lang.reflect.Method> |
findMethods(java.lang.Class<?> type,
MethodMatcher matcher)
查找并返回所有符合条件Method的集合.
|
static java.lang.Class<?> |
forName(java.lang.String className)
查找指定类型
.
|
static <A extends java.lang.annotation.Annotation> |
getAnnotatedFields(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
返回指定类型(objectType)被指定注解(annotationType)标注的所有字段【成员变量】(field)
会把父类里有被标注的字段也进行返回.
|
static <A extends java.lang.annotation.Annotation> |
getAnnotatedFields(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType,
boolean fromSuper)
返回指定类型(objectType)被指定注解(annotationType)标注的所有字段【成员变量】(field) fromSuper 为
true 时会把父类里有被标注的字段也进行返回,为false则只返回本类的.
|
static <A extends java.lang.annotation.Annotation> |
getAnnotatedMethods(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
返回指定类型(objectType)被指定注解(annotationType)标注的公共(public)方法(method).
|
static <A1 extends java.lang.annotation.Annotation,A2 extends java.lang.annotation.Annotation> |
getAnnotation(A1 annotation,
java.lang.Class<A2> annotationPresent)
获取标注的注解实力对象,如果没有标注,返回null.
|
static <A extends java.lang.annotation.Annotation> |
getAnnotation(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
返回指定类型(objectType)的指定注解类型(annotationType), 会把父类里有被标注的字段也进行返回.
|
static <A extends java.lang.annotation.Annotation> |
getAnnotation(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType,
boolean fromSuper)
返回指定类型(objectType)的指定注解类型(annotationType), fromSuper 为 true
时如果没有找到annotionType,则继续从父类查找.
|
static <A1 extends java.lang.annotation.Annotation,A2 extends java.lang.annotation.Annotation> |
getAnnotations(A1 annotation,
java.lang.Class<A2> annotationPresent)
获取标注的注解实力对象,如果没有标注,返回null.
|
static <A extends java.lang.annotation.Annotation> |
getAnnotations(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
返回指定类型(objectType)的指定注解类型(annotationType), 会把父类里有被标注的字段也进行返回.
|
static <A extends java.lang.annotation.Annotation> |
getAnnotations(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType,
boolean fromSuper)
返回指定类型(objectType)的指定注解类型(annotationType), fromSuper 为 true
时如果没有找到annotionType,则继续从父类查找.
|
static java.lang.reflect.Field |
getField(java.lang.Class<?> type,
java.lang.String fieldName)
返回目标类型的指定名称的字段,支持多层嵌套 例如, user.address.no
|
static <T> java.lang.Class<T> |
getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Field field)
获得Field的第一个泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Field field,
int index)
获得Field的泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.String fieldName)
获得Field的第一个泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.String fieldName,
int index)
获得Field的指定位置的泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
|
static java.util.List<java.lang.Class<?>> |
getFieldGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Field field)
获得Field的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
|
static java.util.List<java.lang.Class<?>> |
getFieldGenericParameterTypes(java.lang.Class<?> type,
java.lang.String fieldName)
获得Field的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getFieldType(java.lang.Class<?> type,
java.lang.reflect.Field field)
获得Field参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getFieldType(java.lang.Class<?> type,
java.lang.String fieldName)
获得Field参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
|
static java.lang.Object |
getFieldValue(java.lang.Class<?> type,
java.lang.String fieldName)
返回目标类型的指定类型的静态字段值,支持多层嵌套 例如, user.address.no
|
static java.lang.Object |
getFieldValue(java.lang.Object object,
java.lang.String fieldName)
返回目标对象的指定类型的字段值,支持多层嵌套 例如, user.address.no
|
static java.lang.reflect.Method |
getGetter(java.lang.reflect.Field field,
java.lang.Class<?> type)
返回getter方法,包括getXxx和isXxx 没有找到返回null.
|
static <T> java.lang.Class<T> |
getInterfaceGenericType(java.lang.Class<?> clazz,
java.lang.Class<?> interfaceType)
获得指定类实现的接口的第一个泛型参数的实际类型.
|
static <T> java.lang.Class<T> |
getInterfaceGenericType(java.lang.Class<?> clazz,
int index,
java.lang.Class<?> interfaceType)
获得指定类实现的接口的泛型参数的实际类型.
|
static java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.String,java.lang.reflect.Type>> |
getInterfaceGenericTypeMap(java.lang.Class<?> clazz)
通过反射,获得指定类的父类的泛型参数的实际类型与父类定义泛型是的定义之间的映射关系.
|
static java.util.Map<java.lang.String,java.lang.reflect.Type> |
getInterfaceGenericTypeMap(java.lang.Class<?> clazz,
java.lang.Class<?> interfaceType)
通过反射,获得指定类的父类的泛型参数的实际类型与父类定义泛型是的定义之间的映射关系.
|
static java.io.File |
getJar(java.lang.Class<?> type)
获取指定类所在的JAR包的JAR文件.如果不是JAR文件中的返回null
|
static java.io.File |
getJar(java.lang.String className)
获取指定类所在的JAR包的JAR文件.如果不是JAR文件中的返回null
|
static java.lang.reflect.Method |
getMethod(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
Gets the method.
|
static java.lang.Class<?> |
getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法输入参数第一个输入参数的第一个泛型参数的实际类型.
|
static java.lang.Class<?> |
getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int index)
获得方法输入参数第index个输入参数的第一个泛型参数的实际类型.
|
static <T> java.lang.Class<T> |
getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int paramIndex,
int genericTypeIndex)
获得方法输入参数第index个输入参数的所有泛型参数的实际类型.
|
static java.lang.Class<?> |
getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法输入参数第一个输入参数的第一个泛型参数的实际类型.
|
static java.util.List<java.lang.Class<?>> |
getMethodGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法输入参数第一个输入参数的所有泛型参数的实际类型列表.
|
static java.util.List<java.lang.Class<?>> |
getMethodGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method,
int index)
获得方法输入参数第index个输入参数的所有泛型参数的实际类型.
|
static java.util.List<java.util.List<java.lang.Class<?>>> |
getMethodGenericParameterTypesAll(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法所有参数的所有泛型参数的实际类型列表.
|
static <T> java.lang.Class<T> |
getMethodParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得第一个方法参数对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getMethodParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int paramIndex)
获得指定方法参数对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getMethodParameterType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得第一个方法参数对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
|
static java.util.List<java.lang.Class<?>> |
getMethodParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法参数对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
|
static java.util.List<java.lang.Class<?>> |
getMethodParameterTypes(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法参数对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getMethodReturnType(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法返回对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getMethodReturnType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法返回对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
|
static <T> java.lang.Class<T> |
getMethodReturnTypeGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法返回值第一个泛型参数的实际类型.
|
static <T> java.lang.Class<T> |
getMethodReturnTypeGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int index)
获得方法返回值泛型参数的实际类型.
|
static <T> java.lang.Class<T> |
getMethodReturnTypeGenericParameterType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法返回值第一个泛型参数的实际类型.
|
static java.util.List<java.lang.Class<?>> |
getMethodReturnTypeGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法返回对象的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
|
static java.util.List<java.lang.Class<?>> |
getMethodReturnTypeGenericParameterTypes(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法返回对象的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
|
static java.lang.String |
getPrimitiveClassValueMethodName(java.lang.Class<?> type)
Gets the primitive wrapped.
|
static java.lang.Class<?> |
getPrimitiveWrapped(java.lang.Class<?> type)
Gets the primitive wrapped.
|
static java.lang.String |
getPropertyName(java.lang.reflect.Method method)
返回访问方法的属性名.
|
static java.lang.reflect.Type |
getRawType(java.lang.reflect.Type type)
getRawType.
|
static java.lang.reflect.Method |
getSetter(java.lang.reflect.Field field,
java.lang.Class<?> type)
返回setter方法 没有找到返回null.
|
static java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.String,java.lang.reflect.Type>> |
getSuperClassAllGenericTypeMap(java.lang.Class<?> clazz)
通过反射,获得指定类的父类的泛型参数的实际类型与父类定义泛型是的定义之间的映射关系.
|
static <T> java.lang.Class<T> |
getSuperClassGenericType(java.lang.Class<?> clazz)
通过反射,获得指定类的父类的第一个泛型参数的实际类型.
|
static <T> java.lang.Class<T> |
getSuperClassGenericType(java.lang.Class<?> clazz,
int index)
通过反射,获得指定类的父类的泛型参数的实际类型.
|
static java.util.Map<java.lang.String,java.lang.reflect.Type> |
getSuperClassGenericTypeMap(java.lang.Class<?> clazz)
通过反射,获得指定类的父类的泛型参数的实际类型与父类定义泛型是的定义之间的映射关系.
|
static <T> java.lang.Class<T> |
getSuperClassGenricType(java.lang.Class<?> clazz)
已过时。
拼写错误,后续删除该方法
getSuperClassGenericType(Class) |
static <T> java.lang.Class<T> |
getSuperClassGenricType(java.lang.Class<?> clazz,
int index)
已过时。
拼写错误,后续删除该方法
getSuperClassGenericType(Class, int) |
static java.util.Map<java.lang.String,java.lang.reflect.Type> |
getSuperClassGenricTypeMap(java.lang.Class<?> clazz)
已过时。
拼写错误,后续删除该方法
getSuperClassGenericTypeMap(Class) |
static java.lang.Object |
invokeMethod(java.lang.Class<?> type,
java.lang.reflect.Method method,
java.lang.Object... args)
invoke static method.
|
static java.lang.Object |
invokeMethod(java.lang.Class<?> type,
java.lang.String methodName)
invoke static method.
|
static java.lang.Object |
invokeMethod(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Object... args)
invoke static method.
|
static java.lang.Object |
invokeMethod(java.lang.Object object,
java.lang.reflect.Method method,
java.lang.Object... args)
invoke object method.
|
static java.lang.Object |
invokeMethod(java.lang.Object object,
java.lang.String methodName)
invoke object method.
|
static java.lang.Object |
invokeMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object... args)
invoke object method.
|
static boolean |
isAbstractClass(java.lang.Class<?> type)
判断传入类型是否是抽象类
.
|
static boolean |
isBasicType(java.lang.Class<?> type)
是否是基础类型,包括基本类型,基本类型包装类, String,StringBuffer,StringBuilder
AtomicInteger,AtomicLong,BigDecimal,BigInteger java.util.Date
java.sql.Date,java.sql.Time,java.sql.Timestamp 注意:不包括这些类的子类
|
static boolean |
isCellection(java.lang.Class<?> type)
是否是cellection接口,及其子接口或实现类.
|
static boolean |
isGetter(java.lang.reflect.Method method)
是否是get方法(以get或is开头).
|
static boolean |
isInstanceClass(java.lang.Class<?> type)
判断传入类型是否是可实例化的类
.
|
static boolean |
isMap(java.lang.Class<?> type)
是否是map接口,及其子接口或实现类.
|
static boolean |
isParent(java.lang.Class<?> parentType,
java.lang.Class<?> childType)
判断第一个参数是否是第二个参数的父类(父接口).
|
static boolean |
isSetter(java.lang.reflect.Method method)
是否是set方法(以set开头).
|
static <T> T |
newInstance(java.lang.Class<T> clazz)
实例化.
|
static <T> T |
newInstance(java.lang.Class<T> clazz,
java.lang.Object... args)
实例化.
|
static <T> T |
newInstance(java.lang.reflect.Constructor<T> constructor,
java.lang.Object... args)
实例化.
|
static java.lang.String |
packageToDir(java.lang.Class<?> type)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
|
static java.lang.String |
packageToDir(java.lang.Package pack)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
|
static java.lang.String |
packageToDir(java.lang.String packageString)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
|
static java.lang.String |
packageToFile(java.lang.Class<?> type)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
|
static java.lang.String |
packageToFile(java.lang.Class<?> type,
boolean containExt)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
|
static java.lang.Class<?> |
parentClass(java.lang.Class<?> c1,
java.lang.Class<?> c2)
返回传入类型的共同父类
.
|
static void |
setFieldValue(java.lang.Class<?> type,
java.lang.String fieldName,
java.lang.Object value)
设置目标类型的指定类型的静态字段值,支持多层嵌套 例如, user.address.no
|
static void |
setFieldValue(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object value)
设置目标对象的指定类型的字段值,支持多层嵌套 例如, user.address.no
|
public static java.lang.Class<?> forName(java.lang.String className)
查找指定类型
.className - 类名public static boolean isParent(java.lang.Class<?> parentType,
java.lang.Class<?> childType)
parentType - 父类型(包括类和接口)childType - 子类型(包括类和接口)public static java.lang.Class<?> parentClass(java.lang.Class<?> c1,
java.lang.Class<?> c2)
返回传入类型的共同父类
.c1 - 类型1c2 - 类型2public static java.lang.reflect.Field getField(java.lang.Class<?> type,
java.lang.String fieldName)
type - 目标类型fieldName - 字段名public static java.lang.Object getFieldValue(java.lang.Class<?> type,
java.lang.String fieldName)
type - 目标类型fieldName - 字段名public static java.lang.Object getFieldValue(java.lang.Object object,
java.lang.String fieldName)
object - 目标对象fieldName - 字段名public static void setFieldValue(java.lang.Class<?> type,
java.lang.String fieldName,
java.lang.Object value)
type - 目标类型fieldName - 字段名value - the valuepublic static void setFieldValue(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object value)
object - 目标对象fieldName - 字段名value - valuepublic static java.lang.reflect.Method getMethod(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
type - the typemethodName - the method nameparameterTypes - the parameter typespublic static java.lang.Object invokeMethod(java.lang.Class<?> type,
java.lang.String methodName)
type - typemethodName - method namepublic static java.lang.Object invokeMethod(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Object... args)
type - typemethodName - method nameargs - method argumentspublic static java.lang.Object invokeMethod(java.lang.Class<?> type,
java.lang.reflect.Method method,
java.lang.Object... args)
type - typemethod - methodargs - method argumentspublic static java.lang.Object invokeMethod(java.lang.Object object,
java.lang.String methodName)
object - objectmethodName - method namepublic static java.lang.Object invokeMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object... args)
object - objectmethodName - method nameargs - method argumentspublic static java.lang.Object invokeMethod(java.lang.Object object,
java.lang.reflect.Method method,
java.lang.Object... args)
object - objectmethod - methodargs - method argumentspublic static <A1 extends java.lang.annotation.Annotation,A2 extends java.lang.annotation.Annotation> A2 getAnnotation(A1 annotation,
java.lang.Class<A2> annotationPresent)
A1 - 被标注的注解泛型A2 - 标注的注解泛型annotation - 被标注的注解实例对象annotationPresent - 标注的注解类型public static <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
A - 注解泛型objectType - 对象类型annotationType - 注解类型public static <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType,
boolean fromSuper)
A - 注解泛型objectType - 对象类型annotationType - 注解类型fromSuper - 是否从父类型查找public static <A1 extends java.lang.annotation.Annotation,A2 extends java.lang.annotation.Annotation> A2[] getAnnotations(A1 annotation,
java.lang.Class<A2> annotationPresent)
A1 - 被标注的注解泛型A2 - 标注的注解泛型annotation - 被标注的注解实例对象annotationPresent - 标注的注解类型public static <A extends java.lang.annotation.Annotation> A[] getAnnotations(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
A - 注解泛型objectType - 对象类型annotationType - 注解类型public static <A extends java.lang.annotation.Annotation> A[] getAnnotations(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType,
boolean fromSuper)
A - 注解泛型objectType - 对象类型annotationType - 注解类型fromSuper - 是否从父类型查找public static <A extends java.lang.annotation.Annotation> java.util.List<java.lang.reflect.Field> getAnnotatedFields(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
A - 注解泛型objectType - 对象类型annotationType - 注解类型public static <A extends java.lang.annotation.Annotation> java.util.List<java.lang.reflect.Field> getAnnotatedFields(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType,
boolean fromSuper)
A - 注解泛型objectType - 对象类型annotationType - 注解类型fromSuper - 是否从父类型查找public static <A extends java.lang.annotation.Annotation> java.util.List<java.lang.reflect.Method> getAnnotatedMethods(java.lang.Class<?> objectType,
java.lang.Class<A> annotationType)
A - 注解类型objectType - 目标类型annotationType - 注解类型public static java.lang.String getPropertyName(java.lang.reflect.Method method)
method - 方法public static boolean isSetter(java.lang.reflect.Method method)
method - 方法public static boolean isGetter(java.lang.reflect.Method method)
method - 方法public static java.lang.reflect.Method getGetter(java.lang.reflect.Field field,
java.lang.Class<?> type)
field - 成员变量type - 类型public static java.lang.reflect.Method getSetter(java.lang.reflect.Field field,
java.lang.Class<?> type)
field - 成员变量type - 类型public static boolean isBasicType(java.lang.Class<?> type)
type - 类型public static boolean isCellection(java.lang.Class<?> type)
type - 类型public static boolean isMap(java.lang.Class<?> type)
type - 类型public static boolean isAbstractClass(java.lang.Class<?> type)
判断传入类型是否是抽象类
.type - typepublic static boolean isInstanceClass(java.lang.Class<?> type)
判断传入类型是否是可实例化的类
.type - typepublic static <T> java.lang.Class<T> castGenericType(java.lang.Class<?> type,
T castToType)
Class泛型参数强制转型
.T - 泛型type - typecastToType - castToTypepublic static java.io.File getJar(java.lang.Class<?> type)
获取指定类所在的JAR包的JAR文件.如果不是JAR文件中的返回null
type - 类型public static java.io.File getJar(java.lang.String className)
获取指定类所在的JAR包的JAR文件.如果不是JAR文件中的返回null
className - classNamepublic static java.lang.String packageToFile(java.lang.Class<?> type)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
type - 类型public static java.lang.String packageToFile(java.lang.Class<?> type,
boolean containExt)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
type - 类型containExt - 包含扩展名public static java.lang.String packageToDir(java.lang.Class<?> type)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
type - 类型public static java.lang.String packageToDir(java.lang.Package pack)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
pack - 包public static java.lang.String packageToDir(java.lang.String packageString)
转换包模式为目录模式.xx.yy.Ttt -> xx/yy/Ttt
packageString - 包模式字符串@Deprecated
public static <T> java.lang.Class<T> getSuperClassGenricType(java.lang.Class<?> clazz,
int index)
getSuperClassGenericType(Class, int)T - 泛型clazz - clazz 需要反射的类,该类必须继承范型父类index - 泛型参数所在索引,从0开始.Object.class@Deprecated public static <T> java.lang.Class<T> getSuperClassGenricType(java.lang.Class<?> clazz)
getSuperClassGenericType(Class)T - 泛型clazz - clazz 需要反射的类,该类必须继承泛型父类Object.class@Deprecated public static java.util.Map<java.lang.String,java.lang.reflect.Type> getSuperClassGenricTypeMap(java.lang.Class<?> clazz)
getSuperClassGenericTypeMap(Class)clazz - clazz 需要反射的类,该类必须继承泛型父类Object.classpublic static <T> java.lang.Class<T> getSuperClassGenericType(java.lang.Class<?> clazz,
int index)
T - 泛型clazz - clazz 需要反射的类,该类必须继承范型父类index - 泛型参数所在索引,从0开始.public static <T> java.lang.Class<T> getSuperClassGenericType(java.lang.Class<?> clazz)
T - 泛型clazz - clazz 需要反射的类,该类必须继承泛型父类Object.classpublic static java.util.Map<java.lang.String,java.lang.reflect.Type> getSuperClassGenericTypeMap(java.lang.Class<?> clazz)
clazz - clazz 需要反射的类,该类必须继承泛型父类Object.classpublic static java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.String,java.lang.reflect.Type>> getSuperClassAllGenericTypeMap(java.lang.Class<?> clazz)
clazz - clazz 需要反射的类,该类必须继承泛型父类Object.classpublic static <T> java.lang.Class<T> getInterfaceGenericType(java.lang.Class<?> clazz,
int index,
java.lang.Class<?> interfaceType)
T - 泛型clazz - clazz 需要反射的类,该类必须继承范型父类index - 泛型参数所在索引,从0开始.interfaceType - 实现的接口类型Object.classpublic static <T> java.lang.Class<T> getInterfaceGenericType(java.lang.Class<?> clazz,
java.lang.Class<?> interfaceType)
T - 泛型clazz - clazz 需要反射的类,该类必须继承泛型父类interfaceType - 实现的接口类型Object.classpublic static java.util.Map<java.lang.String,java.lang.reflect.Type> getInterfaceGenericTypeMap(java.lang.Class<?> clazz,
java.lang.Class<?> interfaceType)
clazz - clazz 需要反射的类,该类必须继承泛型父类interfaceType - the interface typeObject.classpublic static java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.String,java.lang.reflect.Type>> getInterfaceGenericTypeMap(java.lang.Class<?> clazz)
clazz - clazz 需要反射的类,该类必须继承泛型父类Object.classpublic static <T> java.lang.Class<T> getMethodReturnType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法返回对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
例:
public class StringList extends ArrayList<String> {
}
ClassUtils.getMethodReturnType(StringList.class, "get", int.class) == String.class
// 获取StringList对应的List.get(int)返回泛型对象的实际类型
T - the generic typetype - the typemethodName - the method nameparameterTypes - the parameter typespublic static <T> java.lang.Class<T> getMethodReturnType(java.lang.Class<?> type,
java.lang.reflect.Method method)
T - 泛型type - the typemethod - 方法getMethodReturnType(Class, String, Class...)public static <T> java.lang.Class<T> getMethodReturnTypeGenericParameterType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法返回值第一个泛型参数的实际类型. 如: public Map<String, Buyer> getNames(){}
例:
public class StringLongMap extends HashMap<String,Long> {
}
ClassUtils.getMethodReturnTypeGenericParameterType(StringLongMap.class, "keySet", new Class[0]) == String.class
ClassUtils.getMethodReturnTypeGenericParameterType(StringLongMap.class, "values", new Class[0]) == Long.class
T - 泛型type - the typemethodName - the method nameparameterTypes - the parameter typesObject.classpublic static <T> java.lang.Class<T> getMethodReturnTypeGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method)
T - 泛型type - the typemethod - 方法Object.classgetMethodReturnTypeGenericParameterType(Class, String, Class...)public static <T> java.lang.Class<T> getMethodReturnTypeGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int index)
获得方法返回值泛型参数的实际类型. 如: public Map<String, Buyer> getNames(){}
例:
public class StringLongMap extends HashMap<String,Long> {
}
ClassUtils.getMethodReturnTypeGenericParameterType(StringLongMap.class, "keySet", new Class[0]) == String.class
ClassUtils.getMethodReturnTypeGenericParameterType(StringLongMap.class, "values", new Class[0]) == Long.class
public class Super<K,V> {
public Map<K,V> map() {...}
}
public class Sub implements Super<String, Long> {
}
ClassUtils.getMethodReturnTypeGenericParameterType(Sub.class, "map", new Class[0]) == String.class
ClassUtils.getMethodReturnTypeGenericParameterType(Sub.class, Sub.class.getMethod("map", new Class[0]), 1) == Long.class
T - 泛型type - the typemethod - 方法index - 泛型参数所在索引,从0开始.Object.classpublic static java.util.List<java.lang.Class<?>> getMethodReturnTypeGenericParameterTypes(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得方法返回对象的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
type - the typemethodName - the method nameparameterTypes - the parameter typesObject.classpublic static java.util.List<java.lang.Class<?>> getMethodReturnTypeGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method)
获得方法返回对象的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
type - the typemethod - the methodObject.classpublic static <T> java.lang.Class<T> getMethodParameterType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
获得第一个方法参数对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
T - the generic typetype - the typemethodName - the method nameparameterTypes - the parameter typesgetMethodParameterType(Class, Method, int)public static <T> java.lang.Class<T> getMethodParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method)
T - 泛型type - the typemethod - 方法getMethodParameterType(Class, Method, int)public static <T> java.lang.Class<T> getMethodParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int paramIndex)
获得指定方法参数对象的实际类型,如果是具现化的泛型类型,则返回具现化的类型.
public class Super<K,V extends Number> {
public void set(K k, V v) {...}
}
public class Sub implements Super<String, Long> {
}
Method method = Sub.class.getMethod("set", Object.class, Number.class);
ClassUtils.getMethodParameterType(Sub.class, method) == String.class
ClassUtils.getMethodParameterType(Sub.class, method, 1) == Long.class
T - 泛型type - the typemethod - 方法paramIndex - the param indexpublic static java.util.List<java.lang.Class<?>> getMethodParameterTypes(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
type - the typemethodName - the method nameparameterTypes - the parameter typesgetMethodReturnType(Class, String, Class...)public static java.util.List<java.lang.Class<?>> getMethodParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method)
type - the typemethod - 方法getMethodReturnType(Class, String, Class...)public static java.lang.Class<?> getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
type - the typemethodName - the method nameparameterTypes - the parameter typespublic static java.lang.Class<?> getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method)
type - the typemethod - 方法public static java.lang.Class<?> getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int index)
type - the typemethod - 方法index - 第几个输入参数public static <T> java.lang.Class<T> getMethodGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Method method,
int paramIndex,
int genericTypeIndex)
T - the generic typetype - the typemethod - 方法paramIndex - 第几个输入参数genericTypeIndex - 第几个泛型参数public static java.util.List<java.util.List<java.lang.Class<?>>> getMethodGenericParameterTypesAll(java.lang.Class<?> type,
java.lang.reflect.Method method)
type - the typemethod - 方法public static java.util.List<java.lang.Class<?>> getMethodGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method)
type - the typemethod - 方法public static java.util.List<java.lang.Class<?>> getMethodGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Method method,
int index)
type - the typemethod - 方法index - 第几个输入参数public static <T> java.lang.Class<T> getFieldType(java.lang.Class<?> type,
java.lang.String fieldName)
获得Field参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
例:
public abstract class Entity<ID, N> {
public ID id;
public N age;
}
public class User extends Entity<Long,Integer> {
}
ClassUtils.getFieldType(User.class, "id") == Long.class
ClassUtils.getFieldType(User.class, "age") == Integer.class
T - 泛型type - the typefieldName - the field namepublic static <T> java.lang.Class<T> getFieldType(java.lang.Class<?> type,
java.lang.reflect.Field field)
获得Field参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
T - 泛型type - the typefield - 字段getFieldType(Class, String)public static <T> java.lang.Class<T> getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.String fieldName)
获得Field的第一个泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
T - the generic typetype - the typefieldName - the field nameObject.classpublic static <T> java.lang.Class<T> getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.String fieldName,
int index)
获得Field的指定位置的泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
T - the generic typetype - the typefieldName - the field nameindex - the indexObject.classpublic static <T> java.lang.Class<T> getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Field field)
获得Field的第一个泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
T - the generic typetype - the typefield - 字段Object.classgetFieldType(Class, String)public static <T> java.lang.Class<T> getFieldGenericParameterType(java.lang.Class<?> type,
java.lang.reflect.Field field,
int index)
获得Field的泛型参数的实际类型,如果是已经具现化的泛型,则返回具现化的类型.
T - the generic typetype - the typefield - 字段index - 泛型参数所在索引,从0开始.Object.classpublic static java.util.List<java.lang.Class<?>> getFieldGenericParameterTypes(java.lang.Class<?> type,
java.lang.String fieldName)
获得Field的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
type - the typefieldName - the field nameObject.classpublic static java.util.List<java.lang.Class<?>> getFieldGenericParameterTypes(java.lang.Class<?> type,
java.lang.reflect.Field field)
获得Field的所有泛型参数的实际类型列表,如果是已经具现化的泛型,则返回具现化的类型.
type - the typefield - 字段Object.classpublic static <T> T newInstance(java.lang.Class<T> clazz)
T - 泛型clazz - 类型public static <T> T newInstance(java.lang.Class<T> clazz,
java.lang.Object... args)
T - 泛型clazz - 类型args - 参数数组public static <T> T newInstance(java.lang.reflect.Constructor<T> constructor,
java.lang.Object... args)
T - 泛型constructor - 构造器args - 参数数组public static java.lang.reflect.Field findField(java.lang.Class<?> type,
FieldMatcher matcher)
查找并返回第一个符合条件的Field. 如果没有则返回null.
type - 匹配条件matcher - 匹配条件public static java.util.Collection<java.lang.reflect.Field> findFields(java.lang.Class<?> type,
FieldMatcher matcher)
查找并返回所有符合条件Field的集合. 如果没有则返回一个长度为0的集合.
type - 类型matcher - 匹配条件public static java.lang.reflect.Method findMethod(java.lang.Class<?> type,
MethodMatcher matcher)
查找并返回第一个符合条件的Method. 如果没有则返回null.
type - 类型matcher - 匹配条件public static java.util.Collection<java.lang.reflect.Method> findMethods(java.lang.Class<?> type,
MethodMatcher matcher)
查找并返回所有符合条件Method的集合. 如果没有则返回一个长度为0的集合.
type - 类型matcher - 匹配条件public static java.lang.Class<?> getPrimitiveWrapped(java.lang.Class<?> type)
type - the typepublic static java.lang.String getPrimitiveClassValueMethodName(java.lang.Class<?> type)
type - the typepublic static java.lang.reflect.Type getRawType(java.lang.reflect.Type type)
type - type