zoukankan      html  css  js  c++  java
  • java 包之 BeanUtils包的使用

    BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作。

    在使用BeanUtils工具包之前我们需要的Jar包有以下几种:

    (1)   BeanUtils相关包

    commons-beanutils-1.8.3.jar

    commons-beanutils-1.8.3-javadoc.jar

    commons-beanutils-1.8.3-javadoc.jar

    commons-beanutils-bean-collections-1.8.3.jar

    commons-beanutils-core-1.8.3.jar

    (2)   Logic4j相关包

    commons-logging.jar

    log4j.jar

          既然要对Bean对象进行操作,那么就需要一个Bean的测试类,我们以下面为所测试的Bean类

     

    复制代码
     1 public class Student {
    2
    3
    4
    5 private String name;
    6
    7 private int age;
    8
    9 private Date birth;
    10
    11
    12
    13
    14
    15 public String getName() {
    16
    17 return name;
    18
    19 }
    20
    21 public void setName(String name) {
    22
    23 this.name = name;
    24
    25 }
    26
    27 public int getAge() {
    28
    29 return age;
    30
    31 }
    32
    33 public void setAge(int age) {
    34
    35 this.age = age;
    36
    37 }
    38
    39 public Date getBirth() {
    40
    41 return birth;
    42
    43 }
    44
    45 public void setBirth(Date birth) {
    46
    47 this.birth = birth;
    48
    49 }
    50
    51
    52
    53 }
    复制代码

     

    一、先赋值Bean对象里的字段属性,然后再取值:

     

    复制代码
     1 @Test
    2
    3 public void test01() throws Exception{
    4
    5 //1.加载类
    6  
    7 Class clss = Class.forName("com.L.introspector.Student");
    8
    9 //2.创建Bean对象
    10  
    11 Student st = (Student) clss.newInstance();
    12
    13 //3.通过BeanUtils给对象属性赋值
    14  
    15 BeanUtils.setProperty(st, "name", "L。");
    16
    17 //4.输出对象属性值
    18  
    19 String str = BeanUtils.getProperty(st, "name");
    20
    21 System.out.println(str);
    22
    23 }
    复制代码

    BeanUtils的setProperty(object,name,value)方法需要的参数分别是

    Object=加载类的对象

    Name=类属性的名称

    Value=所赋的值;

    BeanUtils的getProperty(object,name)方法的返回值是String类型,所以可以直接输出;

    二、 使用BeanUtils自带的时间转化器转化时间

     

    复制代码
     1 @Test
    2
    3 public void test03() throws Exception{
    4
    5 //创建Student Bean对象
    6  
    7 Student st = new Student();
    8
    9 //使用自带转化器转化时间格式
    10  
    11 ConvertUtils.register(new DateLocaleConverter(), Date.class);
    12
    13 //赋值给birth属性
    14  
    15 BeanUtils.setProperty(st, "birth", "1991-09-25");
    16
    17 //输出birth属性的值
    18  
    19 System.out.println(st.getBirth());
    20
    21 }
    复制代码

    三、 自定义日期格式转换器

     

    复制代码
     1 @Test
    2
    3 public void test04()throws Exception{
    4
    5 //创建Student对象
    6
    7 Student st = new Student();
    8
    9 //使用CovertUtils注册创建一个日期格式转换器
    10
    11 ConvertUtils.register(new Converter() {
    12
    13
    14
    15 @Override
    16
    17 public Object convert(Class type, Object value) {
    18
    19 //当value参数等于空时返回空
    20
    21 if(value==null){
    22
    23 return null;
    24
    25 }
    26
    27 //自定义时间的格式为yyyy-MM-dd
    28
    29 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
    30
    31 //创建日期类对象
    32
    33 Date dt = null;
    34
    35
    36
    37 try {
    38
    39 //使用自定义日期的格式转化value参数为yyyy-MM-dd格式
    40
    41 dt = sdf.parse((String)value);
    42
    43 } catch (ParseException e) {
    44
    45 // TODO Auto-generated catch block
    46
    47 e.printStackTrace();
    48
    49 }
    50
    51 //返回dt日期对象
    52
    53 return dt;
    54
    55 }
    56
    57 }, Date.class);
    58
    59 //给birth赋值
    60
    61 BeanUtils.setProperty(st, "birth", "1991-09-25");
    62
    63 //输出
    64
    65 System.out.println(st.getBirth());
    66
    67 }
    复制代码

    ConvertUtils.register(new Converter()中,new Converter()就相当于重写了Converter类中方法:

           Public class MyConerter implements Converter{

                  //并且在此处创建了匿名的对象

    }

  • 相关阅读:
    Tomcat 下载安装与配置
    mysql explain用法和结果的含义
    xampp 配置多域名工程 解决 Access forbidden!
    谷歌地图 API 开发之获取坐标以及街道详情
    MySQL数学函数简明总结
    SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gb2312_chinese_ci,COERCIBLE) for operation '='
    报错:illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
    VS-Visual Studio-IIS Express 支持局域网访问(用于进入断点)
    Dispatcher类介绍
    this.Dispatcher.BeginInvoke((Action)(() =>的作用
  • 原文地址:https://www.cnblogs.com/jokerjason/p/5717623.html
Copyright © 2011-2022 走看看