java基础之内省

来源:互联网 发布:php restful 框架 编辑:程序博客网 时间:2024/05/19 18:42

java基础之内省

1. javabean

Javabean就是拥有一种固定写法的java类,在应用程序中我们使用javabean来封装数据

定义一个javabean需要遵循下面的规定:

1)必须有无参构造函数

2)属性必须私有,我们称为字段

3)提供标准的getter和setter

例: name 字段 的getter: String getName()  settter: void setName(String name)

   

1.  内省

内省: 通过反射的方式访问javabean的属性  Class.forName().newInstance()

传统方式访问javabean都是通过直接调用属性的 getter 和 setter方法完成的,而在一些特殊情况下,无法获知类的方法名是什么,比如要访问将来未写好的javabean

Jdk中提供了api :PropertyDescriptor类用于访问javabean的属性

 

3.BeanUtils工具包

Apache组织开发了一套用于操作JavaBean的API , 被称为 BeanUtils 组件, 该组件对内省实现了封装

核心类 BeanUtils

    setProperty(bean, name, value) 设置javabean的属性

    getProperty(bean, name) 访问 javabean 的属性

    copyProperties(target, source); 拷贝javabean的属性

    可以支持String到8中基本数据类型转换

    其他引用数据类型都需要注册转换器 ConvertUtils.register(Converter, Class)