博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java进阶11——反射&BeanUtils
阅读量:2351 次
发布时间:2019-05-10

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

反射

反射机制的概述和字节码对象的获取方式

  • 反射介绍
    就是Java中一种获取任意类中方法和属性的机制;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制.
  • 字节码文件获取的三种方式
类名.class;   // 类的属性类对象.getClass(); // object的一个方法Class.forName("类的全路径"); // 常用
  • 字节码对象的组成
    1.成员变量
    2.成员方法
    3.构造方法

反射操作构造方法

  • 通过获取的构造创建对象
1.获取字节码对象2.通过字节码对象获取构造方法3.通过获取到的构造方法创建对象
  • newInstance()和getConstructor()有什么区别?
    通过newInstance()创建的对象,只能是通过无参构造创建的;
    通过getConstructor()创建的对象,可以根据方法中的参数决定采用哪个构造方法创建对象

反射操作公共成员变量

  • 反射获取public成员变量(字段)
1.获取字节码对象2.通过字节码对象直接获取类中属性
  • 反射修改public成员变量
1.通过反射获取字节码对象2.创建对象3.通过字节码对象获取指定的public成员变量 getField("属性名称");4.通过获取到的成员变量的方法修改成员变量的值

反射操作私有成员变量

  • 获取反射private成员变量(字段)
1.通过反射获取字节码对象2.通过字节码对象获取私有成员变量
  • 修改private成员变量
1.通过反射获取字节码对象2.创建对象3.通过字节码对象获取指定的public成员变量 getDeclaredField("属性名称");4.通过获取到的成员变量的方法修改成员变量的值

通过反射获取成员方法并使用

  • 反射获取普通成员方法
1.通过反射获取字节码对象2.创建实例化对象3.通过字节码对象获取到方法4.执行方法,并传入实例对象
  • 反射获取private成员方法
1.通过反射获取字节码对象2.创建实例化对象3.通过字节码对象获取到方法4.解除jvm对其权限的检查  // 方法对象.setAccessible(true);5.执行方法,并传入实例对象

BeanUtils

JavaBean的概述和规范

  • 概述
    就是一个类,用于封装数据提供规范。
  • 规范
    类使用public进行修饰
    提供私有修饰的成员变量
    为成员变量提供公共getter和setter方法
    提供公共无参的构造

BeanUtils的使用

  • 准备工作
1.导入两个jar包    commons-beanutils-1.8.3.jar    commons-logging-1.1.1.jar2.将jar包Build path 配置到当前的classpath环境变量中

BeanUtils的常用方法

static void   setProperty(Object bean, String name, Object value) static String getProperty(Object bean, String name) static void   populate(Object bean, Map properties)
setProperty  用来给对象中的属性赋值    参数1: 需要设置属性的对象    参数2: 需要修改的属性名称    参数3: 需要修改的具体元素  getProperty 用来获取对象中的属性    参数1: 要获取的javaBean对象    参数2: 对象中的哪个属性Populate 用来给对象中的属性赋值    参数1: 要设置属性的对象    参数2: 将属性以Map集合的形式传入                Key : 属性的名称                Value:  属性具体的值

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

你可能感兴趣的文章
c中嵌入python
查看>>
python的C扩展
查看>>
python的USB通信
查看>>
eclipse svn
查看>>
SPSS基础教程:SPSS统计分析基础
查看>>
IBM SPSS Modeler 客户端 vs 服务器的区别详解
查看>>
DataStage On Cloud,构建云端的企业数据集成平台
查看>>
ICMP协议
查看>>
SSL协议
查看>>
IMAP,POP3,SMTP协议
查看>>
数据库协议
查看>>
SNMP协议
查看>>
RDP远程桌面协议
查看>>
ssh Forward X11
查看>>
搜索引擎知识图谱相关结构化数据挖掘与去歧处理
查看>>
找到n个元素中的第二小元素
查看>>
linux命令之find
查看>>
linux命令学习之cut
查看>>
linux下目录读权限与执行权限区别
查看>>
[think in java]知识点学习
查看>>