Java基础之反射

一、概述

  • 反射的源头: 一个类型的class对象
  • 反射就是把一个类中的各种成分映射成一种对象。简单的说就是把类看成一个类类型的对象。
  • 反射发生在程序运行期间的行为。

二、作用与功能

1、在运行时判断任意一个对象所属的类;
2、在运行时构造任意一个类的对象;
3、在运行时判断任意一个类所具有的成员变量和方法;
4、在运行时调用任意一个对象的方法;
5、生成动态代理。

三、获取方式

1、对象.getClass()
2、类名.class();
3、Class.forName包名+类名)

四、操作方式(方法)

1、操作构造器
(1) 获取构造器

只能获取公共的构造器

  •  Constructor<T> getConstructor(Class<?>... parameterTypes) 
    
  •  Constructor<?>[] getConstructors() 
    

获取所有修饰符修饰的构造器

  •  Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 
    
  •  Constructor<?>[] getDeclaredConstructors() 
    
(2)使用构造器创建对象
  • 直接通过Class类中的newInstance() 方法创建调用,默认调用空构造
  • 通过Constructor的newInstance() 创建对象,执行使用当前构造器对对象初始化信息
2、操作方法
  • 获取方法
  • 操作方法 Object invoke(Object obj, Object... args) 执行这个方法 第一个参数匹配调用方法的对象,如果是静态方法设置为null 第二个参数:实参
3、 操作属性
  • 获取属性 getFields()...
  • 操作属性方法: void set(Object obj, Object value) 为某一个属性设置值 第一个参数对象这个成员变量的对象 第二个参数:属性的值
  • get(Object obj) 获取某一个对象的当前属性值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容