| 构造器和说明 |
|---|
ReflectKit() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> T |
cast(Object value,
Class<T> type)
类型转换
|
static <T,A extends Annotation> |
findAllMethodAnnotation(Class<T> clazz,
Class<A> annotationType)
获取
clazz下所有Method带指定Annotation的 Annotation集合,这句话说的不太好,还是看英文名清楚
如果 clazz或annotationType为null ,则返还 null |
static void |
forceAccess(AccessibleObject object) |
static Field[] |
getAccessibleFields(Class<?> clazz) |
static Field[] |
getAccessibleFields(Class<?> clazz,
Class<?> limit) |
static Method[] |
getAccessibleMethods(Class<?> clazz) |
static Method[] |
getAccessibleMethods(Class<?> clazz,
Class<?> limit) |
static Field[] |
getAllFieldsOfClass(Class<?> clazz)
获取类及父类的所有
Field,不包括Object的 Field
如果clazz为null,返回null |
static Field[] |
getAllFieldsOfClass(Class<?> clazz,
boolean accessible)
获取类及父类的所有
Field,不包括Object的 Field |
static Field[] |
getAllFieldsOfClass(Object object)
获取对象的所有
Field,不包括Object的 Field
如果object为null,返回null |
static Field[] |
getAllFieldsOfClass(Object object,
boolean accessible)
获取对象的所有
Field,不包括Object的 Field*
如果object为null,返回null |
static Field[] |
getAllInstanceFields(Class<?> clazz)
获取类及父类的所有非静态
Field,不包括Object的 Field
如果clazz为null,返回null |
static Field[] |
getAllInstanceFields(Class<?> clazz,
boolean accessible)
获取类及父类的所有非静态
Field,不包括Object的 Field |
static Field[] |
getAllInstanceFields(Object object)
获取对象的所有非静态
Field,不包括Object的 Field
如果object为null,返回null |
static Field[] |
getAllInstanceFields(Object object,
boolean accessible)
获取对象的所有非静态
Field,不包括Object的 Field
如果object为null,返回null |
static Method[] |
getAllInstanceMethods(Class<?> clazz)
获取类的所有实例
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null |
static Method[] |
getAllInstanceMethods(Class<?> clazz,
boolean accessible)
获取类的所有实例
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null |
static Method[] |
getAllMethodsOfClass(Class<?> clazz)
获取类的所有
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null |
static Method[] |
getAllMethodsOfClass(Class<?> clazz,
boolean accessible)
获取类的所有
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null |
static Field[] |
getAnnotationFields(Class<?> clazz,
Class<? extends Annotation> annotationClass)
获取所有包含指定
Annotation的Field数组 |
static <T,A extends Annotation> |
getAnnotationMethods(Class<T> clazz,
Class<A> annotationType)
获取
clazz下所有带指定Annotation的Method集合。 |
static Class<?> |
getComponentType(Class<?> clazz) |
static Class<?> |
getComponentType(Class<?> clazz,
int index) |
static Class<?> |
getComponentType(Type type)
获取
type的泛型 ,如果type有多个泛型,那么将返回最后一个
如果type不是泛型,则返还null |
static Class<?> |
getComponentType(Type type,
Class<?> implClass) |
static Class<?> |
getComponentTypeRecursion(Class<?> clazz) |
static Class<?> |
getComponentTypeRecursion(Class<?> clazz,
int index) |
static Class<?>[] |
getComponentTypes(Class<?> clazz) |
static Class<?>[] |
getComponentTypes(Type type) |
static Class<?>[] |
getComponentTypes(Type type,
Class<?> implClass)
获取
type的第index个泛型 ,如果index超长, 那么将返回最后一个
如果是数组类型,则忽略index
如果type不是泛型,则返还null
如下均为组合类型:
MyClass[]
List<MyClass>
Foo<? |
static Class<?>[] |
getComponentTypesRecursion(Class<?> clazz) |
static Field |
getField(Class<?> clazz,
String fieldName)
根据对象的
Field名返回Field |
static Field |
getField(Class<?> clazz,
String fieldName,
boolean accessible)
根据对象的
Field名返回Field |
static Field |
getField(Object object,
String fieldName)
根据对象的
Field名返回Field |
static Field |
getField(Object object,
String fieldName,
boolean accessible)
根据对象的
Field名返回Field |
static Field |
getFieldOfClass(Class<?> clazz,
String fieldName)
已过时。
|
static Field |
getFieldOfClass(Object object,
String fieldName)
已过时。
|
static Field |
getFieldOfClass(Object object,
String fieldName,
boolean accessible)
已过时。
|
static Class<?> |
getGenericSuperType(Class<?> type) |
static Class<?>[] |
getGenericSuperTypes(Class<?> type) |
static Field[] |
getInstanceFields(Class<?> clazz,
String[] includes) |
static Method |
getMethod(Class<?> clazz,
String methodName,
Class<?>... parameterTypes) |
static Method |
getMethod(Object object,
String methodName,
Class<?>... parameterTypes) |
static Method |
getMethodByName(Object classOrBean,
String methodName)
查找方法
|
static Object |
getProperty(Object bean,
String name)
用getter获取bean属性
|
static Class<?> |
getRawType(Type type) |
static Class<?> |
getRawType(Type type,
Class<?> implClass) |
static <A extends Annotation> |
hasAnnotation(Field field,
Class<A> annotationType) |
static <A extends Annotation> |
hasAnnotation(Method method,
Class<A> annotationType) |
static boolean |
hasSuperClass(Class<?> clazz)
判断是否有超类
|
static Object |
invokeMehod(Object bean,
Method method,
Object... args) |
static Object |
invokeMehodByName(Object bean,
String methodName,
Object... args) |
static Object |
invokeMethod(Method method,
Object target,
Object... args)
方法调用,如果
clazz为null,返回null;
如果method为null,返回null
如果target为null,则为静态方法 |
static Object |
invokeMethod(Object object,
String methodName,
Object[] args,
Class<?>... parameterTypes)
调用一个命名的方法,其参数类型相匹配的对象类型。
|
static Object |
invokeStaticMethod(Class<?> clazz,
String methodName,
Object[] args,
Class<?>... parameterTypes)
调用一个命名的静态方法,其参数类型相匹配的对象类型。
|
static boolean |
is(Object obj,
Object... mybe)
对象是否其中一个
|
static boolean |
isAccessible(Member m) |
static boolean |
isFinal(Field field) |
static boolean |
isNot(Object obj,
Object... mybe) |
static boolean |
isPublic(Member m) |
static Object |
newInstance(Class<?> clazz)
创建一个实例对象
|
static Object |
newInstance(String className)
新建对象
|
static boolean |
notWriter(Field field)
Field是否不用改写 |
static <T> T |
readField(Field field,
Object target)
读取
Field的值 |
static Object |
readField(String fieldName,
Object target)
读取
Field的值 |
static Object |
readStaticField(Class<?> clazz,
String fieldName)
读取静态
Field的值 |
static Object |
readStaticField(Field field)
读取静态
Field的值 |
static Type |
resolveVariable(TypeVariable<?> variable,
Class<?> implClass) |
static List<String> |
scanPackageClass(String rootPackageName)
扫描包下面所有的类
|
static void |
setProperty(Object bean,
String name,
Object value)
用setter设置bean属性
|
static void |
writeField(Field field,
Object target,
Object value)
写入
Field的值 |
static void |
writeField(Object target,
String fieldName,
Object value)
写入
Field的值 |
static void |
writeStaticField(Class<?> clazz,
String fieldName,
Object value)
写入
Field的值 |
static void |
writeStaticField(Field field,
Object value)
写入
Field的值 |
public static Object invokeMehodByName(Object bean, String methodName, Object... args)
bean - 类实例methodName - 方法名称args - 方法参数public static Object invokeMehod(Object bean, Method method, Object... args)
bean - 类实例methodName - 方法名称args - 方法参数public static Method[] getAllMethodsOfClass(Class<?> clazz)
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null
clazz - 要获取的类Method数组public static Method[] getAllMethodsOfClass(Class<?> clazz, boolean accessible)
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null
clazz - 要获取的类accessible - 是否允许访问Method数组public static Method[] getAllInstanceMethods(Class<?> clazz)
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null
clazz - 要获取的类Method数组public static Method[] getAllInstanceMethods(Class<?> clazz, boolean accessible)
Method,不包括java.lang.Object的 Method
如果clazz为null,返回null
clazz - 要获取的类accessible - 是否允许访问Method数组public static <T,A extends Annotation> List<A> findAllMethodAnnotation(Class<T> clazz, Class<A> annotationType)
clazz下所有Method带指定Annotation的 Annotation集合,这句话说的不太好,还是看英文名清楚
如果 clazz或annotationType为null ,则返还 null
clazz - 要获取的类annotationType - 指定的AnnotationMethod带指定Annotation 的 Annotation集合public static <T,A extends Annotation> List<Method> getAnnotationMethods(Class<T> clazz, Class<A> annotationType)
clazz下所有带指定Annotation的Method集合。
如果 clazz或annotationType为null ,则返还 null
clazz - 要获取的类annotationType - 指定的Annotationclazz下所有带指定Annotation的 Method集合public static Object invokeMethod(Method method, Object target, Object... args)
clazz为null,返回null;
如果method为null,返回null
如果target为null,则为静态方法
method - 调用的方法target - 目标对象args - 方法的参数值public static Object invokeMethod(Object object, String methodName, Object[] args, Class<?>... parameterTypes)
调用一个命名的方法,其参数类型相匹配的对象类型。
object - 调用方法作用的对象methodName - 方法名args - 参数值parameterTypes - 参数类型public static Object invokeStaticMethod(Class<?> clazz, String methodName, Object[] args, Class<?>... parameterTypes)
调用一个命名的静态方法,其参数类型相匹配的对象类型。
clazz - 调用方法作用的类methodName - 方法名args - 参数值parameterTypes - 参数类型public static Method getMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes)
public static Method getMethod(Object object, String methodName, Class<?>... parameterTypes)
public static <A extends Annotation> boolean hasAnnotation(Method method, Class<A> annotationType)
public static Field[] getAllFieldsOfClass(Class<?> clazz)
Field,不包括Object的 Field
如果clazz为null,返回null
clazz - 要获取的类Field数组public static Field[] getAllInstanceFields(Class<?> clazz)
Field,不包括Object的 Field
如果clazz为null,返回null
clazz - 要获取的类Field数组public static Field[] getAllFieldsOfClass(Class<?> clazz, boolean accessible)
Field,不包括Object的 Fieldclazz - 要获取的类accessible - 设置访问权限Field数组public static Field[] getAllFieldsOfClass(Object object)
Field,不包括Object的 Field
如果object为null,返回null
object - 要获取的对象Field数组public static Field[] getAllFieldsOfClass(Object object, boolean accessible)
Field,不包括Object的 Field*
如果object为null,返回null
object - 要获取的对象accessible - 设置访问权限Field数组public static Field[] getAllInstanceFields(Class<?> clazz, boolean accessible)
Field,不包括Object的 Fieldclazz - 要获取的类accessible - 设置访问权限Field数组public static Field[] getAllInstanceFields(Object object)
Field,不包括Object的 Field
如果object为null,返回null
object - 要获取的对象Field数组public static Field[] getAllInstanceFields(Object object, boolean accessible)
Field,不包括Object的 Field
如果object为null,返回null
object - 要获取的对象accessible - 设置访问权限Field数组public static Field[] getAnnotationFields(Class<?> clazz, Class<? extends Annotation> annotationClass)
Annotation的Field数组clazz - 查找类annotationClass - 注解类名Field数组public static Field getField(Object object, String fieldName)
Field名返回Fieldobject - 要获取的对象fieldName - Field名Fieldpublic static Field getField(Class<?> clazz, String fieldName)
Field名返回Fieldclazz - 要获取的类fieldName - Field名Field@Deprecated public static Field getFieldOfClass(Object object, String fieldName)
getField(Object, String)
根据对象的Field名返回Field
object - 要获取的对象fieldName - Field名Fieldpublic static Field getField(Object object, String fieldName, boolean accessible)
Field名返回Fieldobject - 要获取的对象fieldName - Field名accessible - 设置访问权限Fieldpublic static Field getField(Class<?> clazz, String fieldName, boolean accessible)
Field名返回Fieldclazz - 要获取的类fieldName - Field名accessible - 设置访问权限Field@Deprecated public static Field getFieldOfClass(Class<?> clazz, String fieldName)
getField(Class, String)
根据对象的Field名返回Field
clazz - 要获取的类fieldName - Field名Field@Deprecated public static Field getFieldOfClass(Object object, String fieldName, boolean accessible)
getField(Object, String, boolean)
根据对象的Field名返回Field
object - 要获取的对象fieldName - Field名accessible - 设置访问权限Fieldpublic static <T> T readField(Field field, Object target)
Field的值field - 目标Fieldtarget - 目标对象Field值public static Object readField(String fieldName, Object target)
Field的值fieldName - 目标Field名target - 目标对象Field值public static void writeField(Field field, Object target, Object value)
Field的值field - 目标Fieldtarget - 目标对象value - 写入的值public static void writeField(Object target, String fieldName, Object value)
Field的值target - 目标对象fieldName - 目标Field名value - 写入的值public static Object readStaticField(Field field)
Field的值field - 目标Field名Field值public static Object readStaticField(Class<?> clazz, String fieldName)
Field的值clazz - 目标Class名Field名FieldExceptionpublic static void writeStaticField(Field field, Object value)
Field的值field - 目标Fieldvalue - 写入的值FieldExceptionpublic static void writeStaticField(Class<?> clazz, String fieldName, Object value)
Field的值clazz - 目标Classvalue - 写入的值FieldExceptionpublic static boolean notWriter(Field field)
Field是否不用改写field - 目标Fieldtrue,否则返回falsepublic static boolean isFinal(Field field)
public static boolean hasSuperClass(Class<?> clazz)
clazz - 目标类true,否则返回falsepublic static <A extends Annotation> boolean hasAnnotation(Field field, Class<A> annotationType)
public static Class<?> getComponentTypeRecursion(Class<?> clazz, int index)
public static Class<?> getComponentType(Type type)
type的泛型 ,如果type有多个泛型,那么将返回最后一个
如果type不是泛型,则返还null
type - 给定类型 @see Typetype的泛型public static Class<?>[] getComponentTypes(Type type, Class<?> implClass)
type的第index个泛型 ,如果index超长, 那么将返回最后一个
如果是数组类型,则忽略index
如果type不是泛型,则返还null
如下均为组合类型:
type - 给定类型 @see Typeindex - 泛型的索引位type的第index个泛型public static Type resolveVariable(TypeVariable<?> variable, Class<?> implClass)
public static boolean isAccessible(Member m)
public static boolean isPublic(Member m)
public static void forceAccess(AccessibleObject object)
Copyright © 2015. All rights reserved.