黑马程序员技术交流社区
标题: 笔记 [打印本页]
作者: 无尽光年 时间: 2018-6-7 10:22
标题: 笔记
反射
在程序运行时:
获取任意类的方法和属性(含私有)
调用任意对象的方法和属性(含私有)
前提:获取类的字节码对象(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来修饰
提供私有修饰的成员变量
为成员变量提供getter和setter方法
提供公共无参构造
实现(序列化)Serializable接口
BeanUtils
Apache组织提供的Commons类的一个组件,为简化JavaBean操作
SetProperty(对象,成员属性名,属性值),赋值
GetProperty(对象,成员属性名),返回String类型的属性值
Populate(对象,Map集合)用Map集合修改成员变量值
作者: 不二晨 时间: 2018-7-3 14:50
加油加油
作者: gzsba 时间: 2018-7-21 00:43
敢问仁兄,是哪一期的学员?学习进度这么快
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |