我的学习之路_第十七章_JavaUtils

【BeanUtils工具类】


javaBaen : Java和数据库所对应关系实体类


表(Utils)-->类(User)


表中的列-->类中字段(属性)


表中的行-->根据类创建的对象


javaBean包含:


1.私有的成员变量
2.公共的getter/setter方法
3.空参数构造方法
4.toSting方法
5.实现序列化接口




BeanUtils工具类的三个方法:(工具类的方法都是静态的,直接类名.方法调用)


没有返回值 setProperty(Object obj ,String name , Object value)  设置属性值


没有返回值 getProperty(Objcet obj , String name) 获取属性值


方法参数:


Objcet obj : 要赋值/获取值的javaBean对象
String name : 成员变量的名字(属性名)
Objcet value : 给成员变量赋的实际使用的值.




▲ BeanUtils 工具类可以操作的数据类型有: 基本数据类型,基本数据类型的包装类,String类型, 以上3种类型的一维数组
不管属性是什么数据类型,使用BeanUtils工具类都可以使用字符格式的数据类型来赋值(内部会把字符转换为基本类型,相当于使用
了包装类中的parsexxx() )




populated(Object bean, Map<String, String[] >  properties)


将Map数据封装到指定javabean中,一般用于将表单的所有数据封装到javabean
相当于遍历Map集合,根据Map集合的key(属性名),依次使用Map集合value,给成员变量注入值


参数:


Object obj : 要复制的javabean对象
Map<String,String[]> properties : Map集合


key : String,成员变量的名字(属性名)
value : String[] , 字符串类型的数组
如果成员变量是一个数组,那么就会把value数组的所有值赋值给成员变量
如果成员变量不是一个数组,那么就会使用value数组的第一个值,赋值给成员变量

【自定义populate方法,增强方法的用处】


好处:1.让用户使用自己定义的populate方法不用处理异常
    2.不用创建对象,传class文件即可!
    3.参数增加泛型,传什么类型的javabean就返回什么类型的javabean


改造后的populate方法


populate(Class<E> clazz ,Map<String ,String[]> properties)    返回值: E


改在的代码具体如下


public static <E> E populate(Class<E> clazz , Map<String, String[]> properties){


try{
//2.内部通过反射创建Javabean对象
E obj = clazz.newInstance();
//3.调用BeanUtils工具类的方法populate
BeanUtils.populate(obj, properties);
//5.把对象返回给用户
retuen obj;

}catch(Exception e){


//4.对populate方法的异常进行try...catch处理
e.printStackTrace();
//把编译异常,转换为运行时异常,给成员变量注入值失败,让程序停止下来
throw new RuntimeException("注入值失败");


}




★ 
cn.itcast.dmeo05.domain.Student:        使用反射创建对象
cn/itcast/dmeo05/domain/Student.java:   使用IO读取/写入文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值