public class Reflects extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
static String |
ANNOTATION_TYPE |
static String |
CLONE |
static String |
EQUALS |
static String |
FINALIZE |
static String |
GET |
static String |
GET_CLASS |
static String |
HASH_CODE |
static String |
IS |
static String |
MAIN_METHOD |
static Class<?>[] |
MAIN_METHOD_ARGS |
static String |
NOTIFY |
static String |
NOTIFY_ALL |
static String |
SET |
static String |
TO_STRING |
static String |
WAIT |
| 构造器和说明 |
|---|
Reflects() |
| 限定符和类型 | 方法和说明 |
|---|---|
static Class |
findActualTypeArgument(Class parameterizedSuperType,
Class targetClass,
int index)
得到指定类型的指定位置的泛型实参
|
static Class |
findActualTypeArgument(Class clazz,
int index)
得到指定类型的最近的泛型信息中指定位置的实参
|
static Class |
findActualTypeArgument(Class parameterizedSuperType,
Object obj,
int index)
得到指定类型的指定位置的泛型实参
|
static Class[] |
findActualTypeArguments(Class clazz)
获取类型的最近的泛型参数
|
static Class |
findMethodGenericReturnType(Method method,
Class targetType)
获取指定类型的继承自泛型类声明的方法的返回值实参
|
static Class |
firstParameterizedType(Class clazz) |
static <T> Constructor<T> |
getConstructor(Class<T> clazz,
Class<?>... parameterTypes) |
static <T> Constructor<T>[] |
getConstructors(Class<T> beanClass) |
static <T> Constructor<T>[] |
getConstructorsDirectly(Class<T> beanClass) |
static Field |
getField(Class<?> beanClass,
String name) |
static Map<String,Field> |
getFieldMap(Class<?> beanClass) |
static Field[] |
getFields(Class<?> beanClass)
获得一个类中所有字段列表,包括其父类中的字段,子类字段在前
|
static Field[] |
getFields(Class<?> beanClass,
Predicate<Field> fieldFilter) |
static Field[] |
getFieldsDirectly(Class<?> beanClass,
boolean withSuperClassFields) |
static Object |
getFieldValue(Object o,
String name) |
static Object |
getFieldValueQuietly(Object o,
String name) |
static String |
getLambdaMethodName(MethodReferenceReflection f) |
static Method |
getMethod(Class<?> clazz,
String methodName,
Class<?>... paramTypes) |
static Method |
getMethodByName(Class<?> clazz,
String methodName)
按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回null
|
static Method |
getMethodByName(Class<?> clazz,
String methodName,
boolean ignoreCase)
按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回null
|
static Set<String> |
getMethodNames(Class<?> clazz) |
static Method[] |
getMethods(Class<?> beanClass)
获得一个类中所有方法列表,包括其父类中的方法
|
static Method[] |
getMethods(Class<?> clazz,
Predicate<Method> filter) |
static Method[] |
getMethodsDirectly(Class<?> beanClass,
boolean withSupers,
boolean withMethodFromObject)
获得一个类中所有方法列表
|
static <T,R> String |
getPropertyName(GetterFunction<T,R> getter) |
static <T> String |
getPropertyName(SerializableConsumer<T> setter) |
static <T> String |
getPropertyName(SerializableSupplier<T> getter) |
static <T,R> String |
getPropertyName(SetterFunction<T,R> setter) |
static Method |
getPublicMethod(Class<?> clazz,
String methodName,
Class<?>... paramTypes) |
static Method[] |
getPublicMethods(Class<?> clazz)
获得本类及其父类所有Public方法
|
static List<Method> |
getPublicMethods(Class<?> clazz,
Predicate<Method> filter) |
<T> T |
invoke(Class clazz,
String methodName,
Class[] paramTypes,
Object[] paramValues) |
static <T> T |
invoke(Object obj,
Method method,
Object... args) |
Object |
invokeMain(Class clazz) |
Object |
invokeMain(Class clazz,
String... mainArgs) |
static <T> T |
invokeQuietly(Object obj,
Method method,
Object... args) |
static <T> T |
invokeStatic(Method method,
Object... args) |
boolean |
isAnnotationTypeMethod(Method method) |
static boolean |
isCloneMethod(Method method) |
static boolean |
isEqualsMethod(Method method) |
static boolean |
isFinalizeMethod(Method method) |
static boolean |
isGetClassMethod(Method method) |
static boolean |
isGetterMethod(Method method) |
static boolean |
isHashCodeMethod(Method method) |
static boolean |
isNotifyAllMethod(Method method) |
static boolean |
isNotifyMethod(Method method) |
static boolean |
isObjectDeclaredMethod(Method method) |
static boolean |
isSetterMethod(Method method) |
static boolean |
isToStringMethod(Method method) |
static boolean |
isWaitMethod(Method method) |
static Class<?> |
loadClass(String name) |
static Class<?> |
loadClass(String name,
ClassLoader classLoader) |
static <T> T |
newInstance(Class<T> clazz,
Class[] paramTypes,
Object[] params) |
static <T> T |
newInstance(Class<T> clazz,
Object... params) |
static <T> T |
newInstance(String className) |
static <T> T |
newInstanceIfPossible(Class<T> type) |
static boolean |
removeFinalModifier(Field field)
设置final的field字段可以被修改
只要不会被编译器内联优化的 final 属性就可以通过反射进行修改
以下属性,编译器会内联优化,无法通过反射修改:
基本类型 byte, char, short, int, long, float, double, boolean
Literal String 类型(直接双引号字符串)
以下属性,可以通过反射修改:
基本类型的包装类 Byte、Character、Short、Long、Float、Double、Boolean
字符串,通过 new String("")实例化
自定义java类
|
static void |
setAccessible(AccessibleObject accessibleObject) |
static void |
setFieldValue(Object o,
String name,
Object value) |
public static final Class<?>[] MAIN_METHOD_ARGS
public static Class findMethodGenericReturnType(Method method, Class targetType)
public static Class findActualTypeArgument(Class parameterizedSuperType, Object obj, int index)
parameterizedSuperType - 泛型基类obj - 目标类index - 位置public static Class findActualTypeArgument(Class parameterizedSuperType, Class targetClass, int index)
parameterizedSuperType - 泛型基类targetClass - 目标类index - 位置public static Class findActualTypeArgument(Class clazz, int index)
public static String getLambdaMethodName(MethodReferenceReflection f)
public static <T> String getPropertyName(SerializableSupplier<T> getter)
public static <T> String getPropertyName(SerializableConsumer<T> setter)
public static <T,R> String getPropertyName(GetterFunction<T,R> getter)
public static <T,R> String getPropertyName(SetterFunction<T,R> setter)
public static void setAccessible(AccessibleObject accessibleObject)
public static <T> Constructor<T> getConstructor(@Nonnull Class<T> clazz, Class<?>... parameterTypes)
public static <T> Constructor<T>[] getConstructors(@Nonnull Class<T> beanClass)
public static <T> Constructor<T>[] getConstructorsDirectly(@Nonnull Class<T> beanClass)
public static Field[] getFieldsDirectly(Class<?> beanClass, boolean withSuperClassFields)
public static Object getFieldValue(Object o, String name) throws ReflectiveOperationException
public static void setFieldValue(Object o, String name, Object value) throws ReflectiveOperationException
public static Method[] getMethodsDirectly(Class<?> beanClass, boolean withSupers, boolean withMethodFromObject)
beanClass - 类或接口withSupers - 是否包括父类或接口的方法列表withMethodFromObject - 是否包括Object中的方法public static Method getMethodByName(Class<?> clazz, String methodName)
public static Method getMethodByName(Class<?> clazz, String methodName, boolean ignoreCase)
public static boolean isGetterMethod(Method method)
public static boolean isSetterMethod(Method method)
public static boolean isEqualsMethod(Method method)
public static boolean isHashCodeMethod(Method method)
public static boolean isToStringMethod(Method method)
public static boolean isGetClassMethod(Method method)
public static boolean isCloneMethod(Method method)
public static boolean isNotifyMethod(Method method)
public static boolean isNotifyAllMethod(Method method)
public static boolean isWaitMethod(Method method)
public static boolean isFinalizeMethod(Method method)
public boolean isAnnotationTypeMethod(Method method)
public static boolean isObjectDeclaredMethod(Method method)
public static Method getPublicMethod(Class<?> clazz, String methodName, Class<?>... paramTypes)
public static List<Method> getPublicMethods(Class<?> clazz, Predicate<Method> filter)
public static <T> T newInstance(String className) throws ReflectiveOperationException
public static <T> T newInstance(Class<T> clazz, Class[] paramTypes, Object[] params) throws ReflectiveOperationException
public static <T> T newInstance(Class<T> clazz, Object... params) throws ReflectiveOperationException
public static <T> T newInstanceIfPossible(Class<T> type)
public static <T> T invokeStatic(Method method, Object... args) throws ReflectiveOperationException
public static <T> T invoke(Object obj, Method method, Object... args) throws ReflectiveOperationException
public Object invokeMain(Class clazz) throws ReflectiveOperationException
public Object invokeMain(Class clazz, String... mainArgs) throws ReflectiveOperationException
public <T> T invoke(Class clazz, String methodName, Class[] paramTypes, Object[] paramValues) throws ReflectiveOperationException
public static boolean removeFinalModifier(Field field) throws ReflectiveOperationException
public static Class<?> loadClass(String name) throws ClassNotFoundException
public static Class<?> loadClass(String name, ClassLoader classLoader) throws ClassNotFoundException
Copyright © 2024 fossc. All rights reserved.