- 浏览: 13299 次
- 性别:
- 来自: 广州
文章分类
最新评论
Common BeanUtils 学习与测试
- 博客分类:
- Java
首先构造2个Bean的类:
Person类
Address类:
然后是一个测试类:
Person类
package com.djy.bean; import java.util.List; import java.util.Map; public class Person { private String name; private String sex; private int age; private Address address; private List goods; private Map contact; public Person() { } public Person(String name) { this.name = name; } public Person(String name,String sex) { this.name = name; this.sex = sex; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getSex() { return this.sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public Address getAddress() { return this.address; } public void setAddress(Address address) { this.address = address; } public List getGoods() { return this.goods; } public void setGoods(List goods) { this.goods = goods; } public Map getContact() { return this.contact; } public void setContact(Map contact) { this.contact = contact; } public void sayHello() { System.out.println("Hello World!"); } public void f(String str) { System.out.println("Person.f()..." + str); } public String toString() { return "Person.toString()..."; } }
Address类:
package com.djy.bean; public class Address { private String province; private String city; private String street; private String zipcode; public String getProvince() { return this.province; } public void setProvince(String province) { this.province = province; } public String getCity() { return this.city; } public void setCity(String city) { this.city = city; } public String getStreet() { return this.street; } public void setStreet(String street) { this.street = street; } public String getZipcode() { return this.zipcode; } public void setZipcode(String zipcode) { this.zipcode = zipcode; } }
然后是一个测试类:
package com.djy.bean; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConstructorUtils; import org.apache.commons.beanutils.MethodUtils; import org.apache.commons.beanutils.PropertyUtils; public class BeanUtilsTest { public static void main(String[] args) throws Exception { Address address = new Address(); address.setProvince("GuangDong"); address.setCity("GuangZhou"); address.setStreet("Tian He"); address.setZipcode("510000"); List goods = new ArrayList(); goods.add("sporting"); goods.add("singing"); goods.add("dancing"); Map contact = new HashMap(); contact.put("student", "Ken"); contact.put("teacher", "Mafai"); Person person = new Person(); person.setName("Mike"); person.setSex("male"); person.setAge(25); person.setAddress(address); person.setGoods(goods); person.setContact(contact); // BeanUtilsTest.cloneBean(person); // BeanUtilsTest.copyProperties(person); // BeanUtilsTest.propertyUtilsCopyProperties(person); // BeanUtilsTest.copyProperty(person); // BeanUtilsTest.describe(person); // BeanUtilsTest.propertyUtilsDescribe(person); // BeanUtilsTest.populate(person); // BeanUtilsTest.getArrayProperty(person); // BeanUtilsTest.getIndexedProperty(person); // BeanUtilsTest.getMappedProperty(person); // BeanUtilsTest.getNestedProperty(person); // 得到一个bean中指定属性的值,相当于getter // System.out.println(BeanUtils.getProperty(person,"name")); // 修改一个bean中指定属性的值,相当于setter // BeanUtils.setProperty(person,"name","Tom"); // System.out.println(BeanUtils.getProperty(person,"name")); // System.out.println("--------------------------------------"); // // BeanUtilsTest.invokeMethod(); // System.out.println("--------------------------------------"); // BeanUtilsTest.getAccessibleMethod(); // System.out.println("--------------------------------------"); // BeanUtilsTest.invokeConstructor(); // System.out.println("--------------------------------------"); // BeanUtilsTest.getAccessibleConstructor(); } // BeanUtils.cloneBean()--克隆目标bean public static void cloneBean(Person person) throws Exception { Person p = (Person) BeanUtils.cloneBean(person); System.out.println(p.getAddress().getCity()); System.out.println(person.getAddress().getCity()); p.getAddress().setCity("FoShan"); System.out.println("---------------------------"); System.out.println(p.getAddress().getCity()); System.out.println(person.getAddress().getCity()); System.out.println(p.getAddress() == person.getAddress()); } // BeanUtils.copyProperties()--拷贝目标bean中属性的值,能进行类型转换 public static void copyProperties(Person person) throws Exception { Person p = new Person(); BeanUtils.copyProperties(p, person); System.out.println(p.getAddress().getCity()); System.out.println(person.getAddress().getCity()); p.getAddress().setCity("FoShan"); System.out.println("---------------------------"); System.out.println(p.getAddress().getCity()); System.out.println(person.getAddress().getCity()); System.out.println(p.getAddress() == person.getAddress()); } // PropertyUtils.copyProperties()--拷贝目标bean中属性的值,不能进行类型转换 public static void propertyUtilsCopyProperties(Person person) throws Exception { Person p = new Person(); PropertyUtils.copyProperties(p, person); System.out.println(p.getAddress().getCity()); System.out.println(person.getAddress().getCity()); p.getAddress().setCity("FoShan"); System.out.println("---------------------------"); System.out.println(p.getAddress().getCity()); System.out.println(person.getAddress().getCity()); System.out.println(p.getAddress() == person.getAddress()); } // BeanUtils.copyProperty()--拷贝一个值给目标Bean的一个属性,能进行类型转换 public static void copyProperty(Person person) throws Exception { Person p = new Person(); BeanUtils.copyProperty(p, "age", "12"); System.out.println(p.getAge()); } // BeanUtils.describe()--得到一个bean的所有描述,返回的是一个map public static void describe(Person person) throws Exception { Map map = BeanUtils.describe(person); Set set = map.keySet(); for (Iterator it = set.iterator(); it.hasNext();) { Object o = it.next(); System.out.println(o + ": " + map.get(o)); } System.out.println("--------------------------------------"); // Collection c = map.values(); // for(Object o : c) { // System.out.println(o); // } } // PropertyUtils.describe()--得到一个bean的所有描述,返回的是一个map public static void propertyUtilsDescribe(Person person) throws Exception { Map map = PropertyUtils.describe(person); Set set = map.keySet(); for (Iterator it = set.iterator(); it.hasNext();) { Object o = it.next(); System.out.println(o + ": " + map.get(o)); } System.out.println("--------------------------------------"); // Collection c = map.values(); // for(Object o : c) { // System.out.println(o); // } // System.out.println("----------------------------"); } // BeanUtils.populate()--使用一个map为bean赋值 public static void populate(Person person) throws Exception { Map map = PropertyUtils.describe(person); Person p = new Person(); BeanUtils.populate(p, map); System.out.println(p.getName()); System.out.println(p.getSex()); System.out.println(p.getAge()); System.out.println(p.getAddress().getProvince()); System.out.println(p.getGoods().get(0)); System.out.println(p.getGoods().get(1)); System.out.println(p.getGoods().get(2)); System.out.println(p.getContact().get("student")); System.out.println(p.getContact().get("teacher")); System.out.println("--------------------------------------"); } // BeanUtils.getArrayProperty()--将目标bean的一个属性的值转换成一个字符串数组 public static void getArrayProperty(Person person) throws Exception { String[] array = BeanUtils.getArrayProperty(person, "goods"); for (String str : array) { System.out.println(str); } } // BeanUtils.getIndexedProperty()--可以检索目标bean中数组或集合类型的属性指定索引的值 public static void getIndexedProperty(Person person) throws Exception { System.out.println(BeanUtils.getIndexedProperty(person, "goods[0]")); System.out.println(BeanUtils.getIndexedProperty(person, "goods", 1)); } // BeanUtils.getMappedProperty()--可以检索目标bean中具有map类型的属性中对应键的值 public static void getMappedProperty(Person person) throws Exception { System.out.println(BeanUtils.getMappedProperty(person, "contact(student)")); System.out.println(BeanUtils.getMappedProperty(person, "contact", "teacher")); } // BeanUtils.getNestedProperty()--得到目标bean中嵌套属性的值 public static void getNestedProperty(Person person) throws Exception { System.out.println(BeanUtils.getNestedProperty(person, "address.province")); } // MethodUtils.invokeMethod()--动态调用方法 public static void invokeMethod() throws Exception { // MethodUtils.invokeMethod(Object arg1,String arg2,Object[] arg3) // arg1 一个bean的名称 // arg2 指定bean的方法名 // arg3 方法中的参数列表 MethodUtils.invokeMethod(new Person(), "sayHello", new Object[] {}); // MethodUtils.invokeMethod(Object arg1,String arg2,Object arg3) // arg1 一个bean的名称 // arg2 指定bean的方法名 // arg3 方法中的参数 MethodUtils.invokeExactMethod(new Person(), "f", "hello"); ; } // MethodUtils.getAccessibleMethod()--得到方法 public static void getAccessibleMethod() throws Exception { // MethodUtils.getAccessibleMethod(Class clazz,String methodName,Class[] // parameterTypes) // clazz 一个bean的类对象 // methodName bean中的方法名 // parameterTypes 方法中参数的类型列表 System.out.println(MethodUtils.getAccessibleMethod(Person.class, "f", new Class[] { String.class })); System.out.println(MethodUtils.getAccessibleMethod(Person.class, "f", String.class)); } // ConstructorUtils.invokeConstructor() public static void invokeConstructor() throws Exception { // ConstructorUtils.invokeConstructor(Class clazz,Object[] args) // clazz 一个bean的类对象 // args bean的构造函数的参数列表 Person p1 = (Person) ConstructorUtils.invokeConstructor(Person.class, new Object[] {}); Person p2 = (Person) ConstructorUtils.invokeConstructor(Person.class, "Tom"); System.out.println(p2.getName()); } // ConstructorUtils.getAccessibleConstructor() public static void getAccessibleConstructor() throws Exception { // ConstructorUtils.getAccessibleConstructor(Class clazz,Class[] // parameterTypes) // clazz 一个bean的类对象 // parameterTypes bean的构造函数的参数类型列表 System.out.println(ConstructorUtils.getAccessibleConstructor( Person.class, String.class)); System.out.println(ConstructorUtils.getAccessibleConstructor( Person.class, new Class[] { String.class, String.class })); } }
发表评论
-
Java给图片加水印
2011-08-23 17:24 737原文链接: http://sjsky.iteye.com/bl ... -
java排序
2011-08-04 09:32 596三种排序:插入排序,选择排序,冒泡排序。 pack ... -
多线程机制
2011-04-11 22:48 427程序、进程和线程: ... -
Java反射
2011-04-10 20:53 578一、什么是反射: 反射的概念是由Smith在19 ... -
Java内部类
2011-04-10 10:24 600转载参考自:http://lynnwoo.iteye.com/ ... -
二分法算法
2011-01-10 22:12 463public class TestBinarySearch ... -
计算Fibonacci数列
2011-01-10 22:11 865import java.util.HashMap; im ...
相关推荐
赠送jar包:commons-beanutils-1.9.4.jar; 赠送原API文档:commons-beanutils-1.9.4-javadoc.jar; 赠送源代码:commons-beanutils-1.9.4-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.9.4.pom; ...
common-beanutils下载地址:http://commons.apache.org/proper/commons-beanutils/ common-logging现在地址:http://commons.apache.org/proper/commons-logging/
Commons-beanutils jar包,比较新希望对大家能有帮助
beanutils高手学习笔记,重要的学习笔记,想提高的看
beanutils,方便servlet开发的一大利器,附带源代码,学习一下
commons-beanutils (1.7.0 -1.9.2) 6个jar包. 资源共享,有需要其他jar包的可以在评论留言,看到后我会陆续上传。
commons-beanutils-1.8.0 jar包: 1.commons-beanutils-1.8.0.jar 2.commons-beanutils-1.8.0-javadoc.jar 3.commons-beanutils-1.8.0-sources.jar 4.commons-beanutils-bean-collections-1.8.0.jar 5.commons-...
commons-beanutils-1.8.2-src官方源文件,是你学习beanutils工具的必备资料
JavaBean和beanutils工具类的学习
commons-beanutils-1.8.3.rar官方正版免费版,BeanUtils主要提供了对于JavaBean进行各种操作。 个包主要提供用于操作JavaBean的工具类,Jakarta-Common-BeanUtils的主要功能都在这个包里实现。
commons-beanutils.jar包及源码文件,方便使用
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。使用第三方工具,需要导入jar包:
BeanUtils是由Apache公司开发的针对操作JavaBean的工具包。...但是由Apache公司开发的BeanUtils会更常用,同时,BeanUtils还需要配合第三方日志工具来使用,这里我们同样使用Apache公司的common logging
BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。beanUtils 可以便于对javaBean的属性、对象进行赋值,beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。
赠送jar包:commons-beanutils-1.9.4.jar; 赠送原API文档:commons-beanutils-1.9.4-javadoc.jar; 赠送源代码:commons-beanutils-1.9.4-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.9.4.pom; ...
BeanUtils教程BeanUtils教程BeanUtils教程BeanUtils教程BeanUtils教程BeanUtils教程
BeanUtils_1.8.3最新帮助文档,希望对给位有用。。。
BeanUtils工具 .jar 包使用很简单 可以参考博客java学习笔记——javaweb之BeanUtils、EL、JSTL
BeanUtils工具由Apache软件基金组织编写,提供给我们使用,主要解决的问题是:把对象的属性数据封装到对象中。在整个J2EE的编程过程中,我们经常会从各种配置文件中读取相应的数据,需要明白的一点是从配置文件中...
解决办法是把commons-beanutils中的org/apache/commons/collections删除,这里上传一个改好可以直接使用的。