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                      @Override16 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-dd28 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 block46 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{

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

}

转载于:https://www.cnblogs.com/jokerjason/p/5717623.html

java 包之 BeanUtils包的使用相关推荐

  1. Commons BeanUtils包学习2

    2019独角兽企业重金招聘Python工程师标准>>> Commons BeanUtils包学习2 博客分类: 中间件 java 一.简介: BeanUtils提供对 Java反射和 ...

  2. Java常用开源jar包

    Java常用开源jar包 转:http://blog.csdn.net/kevingao/article/details/8125683 activation~与javaMail有关的jar包,使用j ...

  3. java jar 和 war 包的区别

    一. jar 包 JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.JavaSE程序可以打包成Jar包(J其实可以理解为Java了). ...

  4. java学习笔记(八)----包,jar文件

    包  //建立包后同一个文件中的类都属于这个包,所有的类都必须按包名所对应的目录,在硬盘中存放.同一个包中的类在相互调用时,是不用指定包名的.    ---在编译时对于下面这个类,用这样的方法  ja ...

  5. java学习笔记(一) ----java下常用的包功能

    ***java下常用的包*** java.lang----包含一些java语言的核心类,如String,Math,Integer,System,Thread,提供常用的功能. java.awt---- ...

  6. java jar包和war包_java中jar包和war包之间有什么区别

    原标题:java中jar包和war包之间有什么区别 jar包 简单地说,JAR(Java Archive)是一种包文件格式.JAR文件具有.jar扩展名,可以包含库.资源和元数据文件. 本质上,它是一 ...

  7. java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...

    1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的 ...

  8. java编译错误 程序包javax.servlet不存在javax.servlet.*

    java编译错误 程序包javax.servlet不存在javax.servlet.* 编译:javac Servlet.java 出现 软件包 javax.servlet 不存在 软件包javax. ...

  9. Java中的Atomic包

    Atomic包的作用 方便程序员在多线程环境下,无锁的进行原子操作 Atomic包核心 Atomic包里的类基本都是使用Unsafe实现的包装类,核心操作是CAS原子操作: 关于CAS compare ...

  10. Java中的Atomic包使用指南

    转载自 http://ifeve.com/java-atomic/ 本文首发于并发网,作者:方腾飞 引言 Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便 ...

最新文章

  1. html+css常用小笔记(持续更新)
  2. Devstack 配置文件说明手册
  3. 结构体自动化转为char数组的实现
  4. 使用keepalived实现双机热备
  5. python打开.data_DataX初体验-python命令启动以及纯java启动
  6. 打开多个界面_如何创建用户界面
  7. BroadcastReceiver之动态广播 demo+笔记
  8. oracle连接报08006,oracle数据库无法连接 The Network Adapter could not establish
  9. 知识分享:如何用插件实现操作校验
  10. android 广播 event,无法接收android.intent.action.EVENT_REMINDER广播
  11. P1541 乌龟棋 线性dp
  12. densepose的IUV图像I通道数字与身体部分对应关系
  13. 一元购java源码下载_yungoucms - 源码下载|行业应用软件|其他行业|源代码 - 源码中国...
  14. 2017 Postgres大象会 TBase可靠性探究ppt
  15. web前端面试题-1
  16. 双活数据中心构建方法及实现技术
  17. vs2015开发在网页中调用的ocx控件详解(二)
  18. 表情包gif动图太大怎么处理
  19. 计算机专业如何自己增加项目经验?
  20. iOS App更换图标Logo(本地更换)

热门文章

  1. jbpm6 mysql_JBPM6把默认的H2数据库替换成mySql
  2. 大一c语言期末课程总结,大一下学期期末自我总结
  3. java事件处理的题目_介绍一下java的事件机制
  4. github可以刷星吗_国内某知名社区居然也在GitHub上玩起了刷星活动
  5. 验证列数据是否重复方法归类贴
  6. java迭代器怎么用_Java中迭代器的使用
  7. python画图小猪佩奇_用Python代码画小猪佩奇 Python简直太神奇了
  8. springboot如何对本地数据库增删改查_mysql数据库基本增删改查操作总结
  9. java socket 清理缓冲器_2021年Java全套面试题抢先看!中篇(更新中......)
  10. VC2013配置OpenCV开发环境