一、BeanUtils
- Sun公司的内省API过于繁琐,
- 所以Apache组织结合很多实际开发中的应用场景开发了一套简单、易用的API——BeanUtils
- BeanUtils提供对 Java反射和自省API的包装。
- 其主要目的是利用反射机制对JavaBean进行各种操作
- BeanUtils操作的JavaBean类必须声明为public
- 为了使用BeanUtils,需要导入commons-beanutils-1.8.3.jar和commons-logging-1.1.2.jar
- commons-beanutils下载地址:http://commons.apache.org/proper/commons-beanutils//download_beanutils.cgi
- commons-logging下载地址:http://commons.apache.org/proper/commons-logging//download_logging.cgi
- BeanUtils更强的功能是直接访问内嵌对象的属性,只要使用点号分隔。
二、示例
- BeanUtils
- get属性时返回的结果为字符串,set属性时可以接受任意类型的对象,通常是字符串
- PropertyUtils
- get属性时返回的结果为该属性本来的类型,set属性时只接受该属性本来的类型
//JavaBean类 import java.util.Date; public class Person { private String name; private int age; private Date birthday = new Date(); public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } Person(String name,int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.PropertyUtils; public class BeanUtilsDemo { public static void main(String[] args)throws Exception { Person p = new Person("李四",20); String propertyName = "age"; //BeanUtils设置值时,值通常用字符串,也可以是任意数据类型的 BeanUtils.setProperty(p, propertyName, "30"); Object obj = BeanUtils.getProperty(p, propertyName); System.out.println(obj);//30 System.out.println(obj.getClass());//class java.lang.String //PropertyUtils设置值时,值只能用属性的本来数据类型 PropertyUtils.setProperty(p, propertyName, 5); obj = PropertyUtils.getProperty(p, propertyName); System.out.println(obj);//5 System.out.println(obj.getClass().getName());//java.lang.Integer //BeanUtils设置内嵌对象的属性值 BeanUtils.setProperty(p, "birthday.time", "111"); obj = BeanUtils.getProperty(p, "birthday.time"); System.out.println(obj); } }
三、BeanUtils
public class BeanUtils { //全是静态方法 //Clone a bean based on the available property getters and setters, even if the bean class itself does not implement Cloneable. public static Object cloneBean(Object bean) throws IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException{} //Copy property values from the origin bean to the destination bean for all cases where the property names are the same. public static void copyProperties(Object dest, Object orig) throws IllegalAccessException, InvocationTargetException{} public static String getProperty(Object bean, String name) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{} public static void setProperty(Object bean, String name, Object value) throws IllegalAccessException, InvocationTargetException{} //Return the entire set of properties for which the specified bean provides a read method. public static Map describe(Object bean) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{} //Populate the JavaBeans properties of the specified bean, based on the specified name/value pairs. public static void populate(Object bean, Map properties) throws IllegalAccessException, InvocationTargetException{} }
import java.util.*; import org.apache.commons.beanutils.BeanUtils; public class BeanUtilsDemo { public static void main(String[] args)throws Exception { Person p = new Person("李四",20); Map map = BeanUtils.describe(p); printMap(map); BeanUtils.setProperty(map, "name", "王武"); System.out.println(p.getName()); printMap(map); } private static void printMap(Map map) { Iterator it = map.keySet().iterator(); while(it.hasNext()) { Object obj = it.next(); System.out.println(obj+"="+map.get(obj)); } } }
相关推荐
赠送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; ...
赠送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; ...
赠送jar包:commons-beanutils-1.9.3.jar; 赠送原API文档:commons-beanutils-1.9.3-javadoc.jar; 赠送源代码:commons-beanutils-1.9.3-sources.jar; 包含翻译后的API文档:commons-beanutils-1.9.3-javadoc-...
在本篇中,我们将深入探讨`commons-beanutils-1.8.0.jar`和`commons-logging-1.1.1.jar`这两个关键的Java库。 1. **Apache Commons BeanUtils 1.8.0** `commons-beanutils-1.8.0.jar`是Apache Commons项目的一个...
- `commons-beanutils-1.8.0-sources.jar`:这个文件包含了`1.8.0`版本的源代码,对于开发者来说是极其宝贵的资源,可以通过阅读源码理解内部实现,学习如何优雅地处理Bean操作,甚至进行二次开发。 4. **使用场景...
commons-beanutils-1.8.2.jar,commons-codec-1.4.jar,commons-collections-3.2.1.jar,commons-dbcp-1.2.2.jar,commons-digester-2.0.jar,commons-fileupload-1.2.1.jar,commons-httpclient.jar,commons-io-...
在给定的压缩包文件中,包含了两个版本的Apache Commons BeanUtils库:`commons-beanutils-1.8.0`和`commons-beanutils-1.8.3`。 Apache Commons BeanUtils的核心功能包括: 1. **属性访问**:BeanUtils提供了一...
赠送jar包:commons-beanutils-1.9.1.jar; 赠送原API文档:commons-beanutils-1.9.1-javadoc.jar; 赠送源代码:commons-beanutils-1.9.1-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.9.1.pom; ...
在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目中集成和应用。 Apache Commons BeanUtils库的主要目标是简化JavaBean对象的属性访问。它通过提供一系列静态...
在给定的`commons-beanutils-1.9.1.jar`中,包含了大量的实用函数,如`PropertyUtils`、`MethodUtils`等,这些函数简化了JavaBeans的处理。 `commons-logging-1.1.3.jar`是另一个Apache项目,它是Java的日志抽象层...
赠送jar包:commons-beanutils-1.9.3.jar; 赠送原API文档:commons-beanutils-1.9.3-javadoc.jar; 赠送源代码:commons-beanutils-1.9.3-sources.jar; 包含翻译后的API文档:commons-beanutils-1.9.3-javadoc-...
赠送jar包:commons-beanutils-1.7.0.jar; 赠送原API文档:commons-beanutils-1.7.0-javadoc.jar; 赠送源代码:commons-beanutils-1.7.0-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.7.0.pom; ...
赠送jar包:commons-beanutils-1.7.0.jar; 赠送原API文档:commons-beanutils-1.7.0-javadoc.jar; 赠送源代码:commons-beanutils-1.7.0-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.7.0.pom; ...
这里提到的三个JAR文件——`commons-beanutils.jar`、`commons-collections-3.1.jar`和`commons-pool-1.2.jar`,都是Apache Commons项目的一部分,分别涉及Bean操作、集合操作和对象池化。 **1. `commons-beanutils...
在本文中,我们将深入探讨`commons-beanutils-1.8.3.jar`的核心功能和使用方法。 Apache Commons BeanUtils的核心特性主要体现在以下几个方面: 1. **属性访问**:BeanUtils提供了`getProperty()`和`setProperty()...
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.9.4.zip`是一个包含Apache Commons BeanUtils 1.9.4版本的压缩包。这个版本包含了以下几个关键文件: 1. `commons-beanutils-1.9.4-javadoc.jar`: 这是BeanUtils库的API文档,通过解压这个jar...
《JSF中的commons-beanutils.jar:深入了解与应用》 在Java Server Faces(JSF)框架的开发过程中,经常会遇到一些常用的库文件,其中之一便是`commons-beanutils.jar`。这个小巧却强大的库,是Apache Commons项目...
commons-beanutils-core-1.8.3.jar