zoukankan      html  css  js  c++  java
  • 我的学习之路_第十七章_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读取/写入文件

  • 相关阅读:
    Calling Convention的总结
    形参传递关键点
    linux input输入子系统分析《四》:input子系统整体流程全面分析
    22.Linux-块设备驱动之框架详细分析(详解)
    spring: 使用profiles选择数据源(结合嵌入式数据源EmbeddedDatabaseBuilder)
    spring: 使用嵌入式数据源 EmbeddedDatabaseBuilder
    jsp:jstl标签之控制流程
    jsp: jstl标签库
    jsp:tld标签
    spring boot: 组合注解与元注解
  • 原文地址:https://www.cnblogs.com/jia-/p/7074736.html
Copyright © 2011-2022 走看看