JavaBean
来源:互联网 发布:中银淘宝联名卡 编辑:程序博客网 时间:2024/06/16 18:40
一、概述
JavaBean一种特殊的Java对象。特点如下:
- 所有的成员私有
- 对外提供公共的setter 和 getter方法(boolean可以get也可以是is)
- 提供空参的构造
- JavaBean属性名要求:前两个字母要么都大写,要么都小写
符合以上规范的类成员,称为javabean的属性。可以用特定的方法,对javabean的属性进行统一的自动赋值操作。
二、内省
1.概念
内省的目标是得到JavaBean属性的读、写方法的反射对象,通过反射对JavaBean属性进行操作的一组API。(哪个2货起的内省这个名字,我保证不打死你),特点如下:
- 对反射的一层封装。可以获取一个对象的读和写的方法和属性。
- BeanInfo:就是对一个JavaBean类的描述(属性,方法,事件)
- Introspector:获取BeanInfo对象
内省的条件是:
- map中的key必须与javabean的类中的成员变量名字相同
2.内省的方式
2.1 sun公司原始的方法
每个PropertyDescriptor对象对应一个JavaBean属性:
- String getName():获取JavaBean属性名称;
- Method getReadMethod:获取属性的读方法;
- Method getWriteMethod:获取属性的写方法。
//1.建立一个map集合,模板表单提交方式HashMap<String,String> hm = new HashMap<String,String>();hm.put("username", "zhangsan");hm.put("password","22");//2.通过sun公司的内省方式,获取参数BeanInfo beaninfo = Introspector.getBeanInfo(User.class);PropertyDescriptor[] pds = beaninfo.getPropertyDescriptors();//3.创建对象,用于装数据User user = new User();for (PropertyDescriptor pd : pds) { //遍历集合,如果集合中有与类成员名称相同的,刚取出,用反射赋值 String name=pd.getName(); String value=hm.get(name); if(value!=null){//如果map和类成员中的对象相符,则开始写入 Method writeMethod = pd.getWriteMethod();//底层用反射的方法 writeMethod.invoke(user, value);//反射调用方法 }}
2.2 appach公司的commons-beanutils
它底层使用了内省,对内省进行了大量的简化!要导入如下两个包:
- commons-beanutils.jar
- commons-logging.jar
//指定编码request.setCharacterEncoding("utf-8");//1.得到form表单提交的参数,用map接收Map pm = request.getParameterMap();User user = new User();//2.用内省的方式,调用org.apache.commons.beanutils.BeanUtils,把map中的数据写到user中BeanUtils.populate(user, pm);System.out.println(user);
0 0
- JavaBean
- JAVABEAN
- JavaBean
- javabean
- JAVABEAN
- javabean
- javabean
- JavaBean
- JavaBean
- javabean
- JavaBean
- JavaBean
- JavaBean
- JavaBean
- JavaBean
- JavaBean
- JavaBean
- javaBean
- How to Install PyQt4 on OS X
- c++类与c struct的区别
- ionic 安装
- 把16G iPhone 6 Plus 纯手工升级到 128G
- 观察者模式
- JavaBean
- Java反射机制
- zb的生日
- AT24C02的Stm32模拟读写IIC程序(续)
- Android Studio开启虚拟机遇到HAX kernel module is not installed问题
- HDU 2112HDU Today (最短路)
- ARM编译工具
- 离线安装eclipse的Maven插件
- Maven学习笔记1-QuickStart