• BeanUtils


    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{

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

    }
     
    分类: Java
  • 相关阅读:
    linux 解压tgz 文件指令
    shell 脚本没有执行权限 报错 bash: ./myshell.sh: Permission denied
    linux 启动solr 报错 Your Max Processes Limit is currently 31202. It should be set to 65000 to avoid operational disruption.
    远程查询批量导入数据
    修改 MZTreeView 赋权节点父节点选中子节点自动选中的问题
    关于乱码的问题解决记录
    我的网站优化之路
    对设计及重构的一点反思
    我的五年岁月
    奔三的路上
  • 原文地址:https://www.cnblogs.com/Coolkaka/p/5939653.html
Copyright © 2020-2023  润新知