A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 无尽光年 初级黑马   /  2018-6-7 10:33  /  673 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射
在程序运行时:
获取任意类的方法和属性(含私有)
调用任意对象的方法和属性(含私有)
前提:获取类的字节码对象(Class对象)
三种方法:
对象.getClass();
类名.class;
Class.forname(String className);
通过字节码对象获取构造方法的功能:
Constuctor<?>[]getConstuctors():获取public构造方法(数组形式)
Constuctor<?>[]getDeclaredConstuctors():获取所有权限的构造方法(数组形式)
Constuctor<T>[]getConstuctors(Class<?>...parameterTypes):列表形式获取公共有参构造
Constuctor<T>[]getDeclaredConstuctors(Class<?>...parameterTypes):列表形式获取任意有参构造
通过获取的构造方法(有参或无参)或字节码对象(无参)创建对象newInstance()
通过字节码对象获取成员变量:
Field[]getFields():(数组形式)获取所有公共成员变量,Declared获取所有权限
Field Class.getField(String 类型名);获取指定类型公共成员变量,Declared获取所有权限
获取字段对象
修改成员变量(覆盖)set(类对象,成员变量值)
Object通过字段对象.get(类对象)获取字段
字段对象.setAccessible(true):设置反射时取消Java的访问检查,暴力访问
(Object方法的返回值)方法对象.Invoke(类对象,成员变量值)调用指定对象的成员方法
Method字节码对象.getMethod(方法名,参数类型.class,...)获取成员方法
JavaBean用于封装数据
类使用public来修饰
提供私有修饰的成员变量
为成员变量提供gettersetter方法
提供公共无参构造
实现(序列化)Serializable接口
BeanUtils
Apache组织提供的Commons类的一个组件,为简化JavaBean操作
SetProperty(对象,成员属性名,属性值),赋值
GetProperty(对象,成员属性名),返回String类型的属性值
Populate(对象,Map集合)Map集合修改成员变量值

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马