反射

反射

介绍

  • 运行时动态的获取类并进行操作

类对象

介绍

  • 反射的核心类Class,表示类的元信息

获取类对象

Class Object.class 获取Object类的Class对象
Class Class.forName(className) 根据全限定类名获取Class对象
Class object.getClass() Object类的方法,获取实例化对象的Class对象

方法

类信息方法
方法名 描述
String getName() 获取全限定类名
String getTypeName() 获取类名,支持泛型
String getSimpleName() 获取类名
boolean isInterface() 是否是接口
boolean isArray() 是否是数组
boolean isInstance(object) object是否是此类或其子类的实例
boolean isAssignableFrom(class) class是否是此类或其子类和实现
Class<?> getSuperClass() 获取父类
Class<?>[] getInterfaces() 获取所有实现类
ClassLoader getClassLoader() 获取类加载器
Class<?> getComponentType() 获取数组的元素类型
获取构造器对象
方法名 描述
Constractor<?> getConstructor(argsClass) 获取指定参数对象的公共构造器对象
Constractor<?> getDeclaredConstructor(argsClass) 获取指定参数对象的构造器对象
Constractor<?>[] getConstructors() 获取所有公共构造器对象
Constractor<?>[] getDeclaredConstructors() 获取所有构造器对象
获取方法对象
方法名 描述
Method getMethod(methodName,[argsClass]) 根据方法名获取单个公共方法对象
Method getDeclaredMethod(methodName,[argsClass]) 根据方法名获取单个方法对象
Method[] getMethods() 根据方法名获取所有公共方法对象
Method[] getDeclaredMethods() 根据方法名获取所有方法对象
获取字段对象
方法名 描述
Field getField(fieldName) 根据字段名获取单个公共字段对象
Field getDeclaredField(fieldName) 根据字段名获取单个字段对象
Field[] getFields(fieldName) 根据字段名获取所有公共字段对象
Field[] getDeclaredFields(fieldName) 根据字段名获取所有字段对象

构造器对象

介绍

  • 通过构造器对象可以动态的创建一个对象实例

方法

方法名 描述
Object newInstance([args]) 构造一个对象实例
void setAccessible(boolean) 是否跳过权限修饰符检查,即是否允许使用私有构造器

方法对象

介绍

  • 通过方法对象可以动态的调用类的某个方法

方法

方法名 描述
Object invoke(object,[args]) 根据对象实例执行方法,静态方法object为null
void setAccessible(boolean) 是否跳过权限修饰符检查,即是否允许使用私有方法

字段对象

介绍

  • 通过字段对象可以动态的获取或修改字段的值

方法

方法名 描述
Object get(object) 获取该字段对象在对象实例中的值
void set(object,value) 设置该字段对象在对象实例中的值
void setAccessible(boolean) 是否跳过权限修饰符检查,即是否允许操作私有字段
String getName() 获取字段名
Class<?> getType() 获取字段类型
Type getGenericType() 获取泛型字段类型,不会自动解析
boolean isPrimitive() 字段是否是基本数据类型

工具类

Array

介绍
  • java.lang.reflect包
  • 动态的操作数组
方法
方法 描述
Object newInstance(Class,length) 创建指定类型和长度的新数组
Object get(array,index) 获取数组中指定索引的元素值
void set(array,index,value) 设置数组中指定索引的元素值
int getLength(array) 获取数组长度
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇