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{
//并且在此处创建了匿名的对象
}
java 包之 BeanUtils包的使用的更多相关文章
- Java常用开源jar包
转:http://blog.csdn.net/kevingao/article/details/8125683 activation~与javaMail有关的jar包,使用javaMail时应与mai ...
- Java中的Atomic包
Atomic包的作用 方便程序员在多线程环境下,无锁的进行原子操作 Atomic包核心 Atomic包里的类基本都是使用Unsafe实现的包装类,核心操作是CAS原子操作: 关于CAS compare ...
- C#调用java类、jar包方法(转)
一.将已经编译后的java中Class文件进行打包:打包命令JAR 如:将某目录下的所有class文件夹全部进行打包处理: 使用的命令:jar cvf test.jar -C com/ . 其中tes ...
- 0021 Java学习笔记-面向对象-包、构造器
封装 面向对象的三大特征: 封装 继承 多态 封装: 将对象的状态信息隐藏,不允许外部程序直接访问 通过该类提供的方法来访问和操作 有啥用: 隐藏类的实现细节 在方法中加入控制逻辑,限制对成员变量的不 ...
- java编译错误 程序包javax.servlet不存在javax.servlet.*
java编译错误 程序包javax.servlet不存在javax.servlet.* 编译:javac Servlet.java 出现 软件包 javax.servlet 不存在 软件包javax. ...
- C#调用java类、jar包方法
一.将已经编译后的java中Class文件进行打包:打包命令JAR 如:将某目录下的所有class文件夹全部进行打包处理: 使用的命令:jar cvf test.jar -C com/ . 其中tes ...
- 将java源文件制成jar包
很多人都在苦恼,如何将写好的程序代码能在日后随时调用和配置在项目中运行 今天,就让梦逸来给大家分享这个过程 首先,创建好一个文件夹,文件夹名称随意 这个文件夹中是用来存放java源文件( 未编译的 x ...
- java基础十[包、Jar存档文件和部署](阅读Head First Java记录)
将Java的class文件生成为可执行的Java应用程序.Java应用程序有三种:完全在本机执行的Jar(例如本机的GUI可执行程序):完全在服务器端远程执行的(例如浏览器来进行存取):介于两者之间的 ...
- java开发常用jar包介绍(转载)
jta.jar 标准JTA API必要 commons-collections.jar 集合类 必要 antlr.jar ANother Tool for Language Recognition ...
随机推荐
- 解决iOS9苹果将原http协议改成了https协议问题
解决方法: 在info.plist 加入key <key>NSAppTransportSecurity</key> <dict> <key>NSAllo ...
- Python学习笔记3(数据结构)
1.元组结构(Tuple) 元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串.数字甚至元组.元组创建后不能修改. 元组通常代表一行数据,而元组中的元素代表不同的数据项. 1.1元组的创建 ...
- UIScrollView和UIPageControl学习使用
# UIScrollView和UIPageControl # 概要 对于同一个页面需要展示很多图片信息.子视图等的这样的需求,我们可以采用控件UIScrollVIew,与之常常一起使用的控件是UIPa ...
- git commit的--amend选项
git commit --amend常常用来修改某个branch上最顶端的commit,大多数情况下,这个命令给人的感觉是用新的commit替换了原来的commit.git commit --amen ...
- python多线程抓取网页信息
#!/usr/env python #-*- coding: utf-8 -*- import urllib import urllib2 import random import requ ...
- JSON 传值 textarea中虚拟换行功能
遇到错误的袭击, 错误出现,使用jquery中ajax进行查询数据时执行完以后,需要把数据封装成为JSON类型的数据,并传递到前台去的时候出现Invalid JSON 错误,经查找后发现是在使用tex ...
- html 标签释义
position 位置 给....定位 作用:定位 position:fixed 锁定游览器位置 如右下角弹窗 absolute 绝对定位 游览器左上角 position: ...
- iOS开发之OC篇-响应式编程Reactive Cocoa
一.Reactive Cocoa 介绍 Reactive Cocoa 是 iOS 开发的一个 "重量级" 框架 高大上的概念:响应式编程 核心概念:信号 Signal 官方网站:h ...
- wordpress教程之函数讲解
wordpress函数收集 is_home() : 是否为主页is_single() : 是否为内容页(Post), 是否是单篇文章 is_page() : 是否为内容页(Page), 是否 ...
- python模范发送邮件的时候,才smtp.connect的时候总是抛出错误
python发送邮件的时候,总是出现:[Errno 10060] 错误码 根据debug得到在connect的时候出错. 认真检查了下host,没有错呀~应该就是服务器的host. 查看了下网上的一些 ...