博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的反射机制
阅读量:4045 次
发布时间:2019-05-24

本文共 1287 字,大约阅读时间需要 4 分钟。

Java的反射机制

什么是Java的反射机制

Java的反射机制,是指在Java程序运行时,动态获取和访问类和对象的属性、方法等自身信息的功能机制。

认识Class

Class即元类,是用来描述类的类,Class类的每一个对象负责描述一个类。

Class对象的获取

通用的Class的对象获取方式有三种

  1. 通过类的静态属性class获取,例如:Class c1 = String.class;
  2. 通过字符串形式的类的全限定名称获取,例如 Class c2 = Class.forName(“java.lang.String”);
  3. 通过类的对象获取,例如 Class c3 = new String(“abc”).getClass();

专用于描述包装类的Class对象的方式:Class c = Integer.TYPE;

注意:同一个类加载器下,无论以何种方式获得的描述同一个类的元类对象都是同一个对象。

Class的方法

  1. 实例方法getName():获得元类对象所描述类的全限定名称;
  2. 实例方法getSimpleName():获得元类对象所描述类的简称(即不带包的类名)
  3. 实例方法newInstance() : 创建元类对象所描述类的对象,前提是所描述类具有public的无参构造方法;
  4. 实例方法getField(String):根据元类对象所描述类的属性名称,获取public属性的描述对象(Field类的对象);
  5. 实例方法getFields():获取元类对象所描述类的所有public属性的描述对象。
  6. 实例方法getMethod(String, Class…):根据元类对象所描述类的方法名称和参数类型,获取public方法的描述对象(Method类的对象);
  7. 实例方法getMethods():获取元类对象所描述类的所有public方法的描述对象;
  8. 实例方法getConstructor(Class…):根据元类对象所描述类的构造参数类型,获取public构造方法的描述对象(Constructor类的对象);
  9. 实例方法getConstructors():获取元类对象所描述类的所有public构造方法的描述对象。

认识Field类

Field类是属性的描述类,每一个Field对象描述一个属性。

Field类的常用方法

  1. 实例方法set(Object obj, Object value):给Field对象所描述属性赋值;
  2. 实例方法get(Object obj):获取Field对象所描述属性的值。

认识Method类

Method类是方法的描述类,每一个Method对象描述一个方法。

Method类常用方法

  1. 实例方法getName():获得Method对象所描述方法的名称;
  2. 实例方法getParameterCount():获得Method对象所描述方法的参数数量;
  3. 实例方法Class[] getParameterTypes():获得Method对象所描述方法的参数类型;
  4. 实例方法invoke(Object, Object…):执行Method对象所描述方法。

转载地址:http://vnhdi.baihongyu.com/

你可能感兴趣的文章
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
js弹窗插件
查看>>
自定义 select 下拉框 多选插件
查看>>
js判断数组内是否有重复值
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
arm linux 生成火焰图
查看>>
linux和windows内存布局验证
查看>>
linux insmod error -1 required key invalid
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>