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{
//并且在此处创建了匿名的对象
}
BeanUtils的更多相关文章
- java jdbc的优化之BeanUtils组件
1. BeanUtils组件 1.1 简介 程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件. BeanUtils ...
- BeanUtils.populate(obj, map);
public static void populate(Object bean, Map<String, ? extends Object> properties) throws Ille ...
- Beanutils基本用法
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的.无论谁的项目,始终一天都会用得上它.我算是后知后觉了,第一回看到它的时候居然错过. 1.属性的动态gett ...
- BeanUtils.copyProperties()方法和PropertyUtils.copyProperties()的区别
首先两者来源于同一个包: import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.Prop ...
- Apache Commons BeanUtils
http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/org/apache/commons/beanut ...
- 利用BeanUtils在对象间复制属性
commons-beanutils是jakarta commons子项目中的一个软件包,其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很 ...
- BeanUtils.copyProperties() 用法
BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处 ...
- BeanUtils.populate的作用
它是在org.apache.commons.beanutils.BeanUtils包中的一个方法. 方法的作用:将一些 key-value 的值(例如 hashmap)映射到 bean 中的属性. ...
- 内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包、注解、Rentention、Target、注解的基本属性和高级属性
本文转载自:http://blog.sina.com.cn/s/blog_5d65a16901011kom.html 关键字:内省.JavaBean.PropertyDescriptor类.Int ...
随机推荐
- 解决webstorm卡顿问题
webstorm强大的功能就不多做介绍了.但是它的缺点也显而易见:吃内存. 电脑配置稍低一点,运行webstorm就特别容易卡顿,特别是项目比较大的时候,那卡顿得不要不要的. 在我的笔记本8g内存 2 ...
- Django分析之国际化处理
最近在公司终于开始做web开发了,本以为会是简单的首页之类的小规模项目,结果上来就是一个处理大数据分析的项目,一个关于油品分析的系统,不过我接到的第一个任务是做这个网站的国际化处理,虽然项目还没有上线 ...
- BZOJ3252: 攻略
Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏. 今天他得到了一款新游戏<XX半岛>,这款游戏有n个场景 ...
- 常用的Meta标签写法和作用
页面关键词 <meta name="keywords" content="your tags" /> 页面描述 <meta name=&quo ...
- PAT自测-5 Shuffling Machine
原题连接https://pta.patest.cn/pta/test/17/exam/4/question/264 Shuffling is a procedure used to randomize ...
- word-wrap: break-word;和word-break: break-all;的区别
详细查看以下链接.(转载自张鑫旭大神空间) http://www.zhangxinxu.com/wordpress/2015/11/diff-word-break-break-all-word-wra ...
- js入门篇之正则表达式基础
定义:正则用于规定在文本中检索的内容,它是对字符串执行模式匹配的强大工具 RegExp(正则表达式) 对象的语法: new RegExp(pattern, attributes); pattern为一 ...
- Mac 系统环境变量配置
Mac 系统环境变量配置 例如这里要配置一下 QUICK_V3_ROOT 的环境变量 1.打开终端 输入 vim ~/.bash_profile 2.一直回车 知道出现以下选项 按 E 编辑 ...
- Python强化训练笔记(七)——使用deque队列以及将对象保存为文件
collections模块中的deque对象是一个队列,它有着正常队列的先进先出原则.我们可以利用这个对象来实现数据的保存功能. 例如,现有一个猜数字大小的游戏,系统开始会随机roll点一个0-100 ...
- buyexpressv6
<script type="text/javascript"> var is_enabled = -1; var checkSubmitFlg = false; var ...