反射
2021-04-01 11:31:36 16 举报
AI智能生成
java 基础反射
作者其他创作
大纲/内容
获取Class 类
类名 . class
对象 . getClass()
Class . forName(包名+类名)
Class 类
Field 属性
getFields() 获取所有属性
getDeclaredFields() 暴力获取所有属性
getField("属性名") 获取指定属性
getDeclaredField("属性名") 暴力获取指定属性
Method 方法
getMethods() 获取所有方法
getDeclareMethods() 暴力获取所有方法
getMethod("方法名") 获取指定方法
getDeclareMethod("方法名") 暴力获取指定方法
Constructor 构造器
getConstructors() 获取所有构造器
getDeclaredConstructors() 暴力获取所有构造器
getConstructor(?.class) 获取指定的构造器
getDeclaredConstructor(参数类型.class) 暴力获取指定构造器
关闭安全检查
Field、Method 和 Constructor 对象调用XX . setAccessible(true);
获取当前类的类名
getName() 获取 包名+类名
getSimpleName() 获取 类名
创建对象
newInstance() 本质上是调用类中的无参构造器
通过获取有参构造器,再调用 constructor.newInstance(参数)
获取方法泛型信息
Type[] genericParameterTypes = method.getGenericParametereTypes( ) 获取方法参数列表
遍历 genericParametereTypes 参数列表, 用 instanceof 判断 genericParameterType 是否可以转换成 ParameterizedType
((ParameterizedType) genericParameterType) . getActualTypeArguments() 获取泛型信息
获取注解信息
method.getAnnotations() 获取类上的注解
field.getAnnotation() 获取属性字段上的注解
annotation.value() 获取注解中 value 的值
0 条评论
下一页