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