org.apache.commons.beanutils.PropertyUtils 利用反射操作bean的属性。
getSimpleProperty()通过反射读取属性
Person person=new Person();
person.setName=("heis");
String name=(String)PropertyUtils.getSimpleProperty(person,"name");->heis
getNestedProperty()检索嵌套的bean属性
Book book=new Book();
book.setAuthor(person);
String authorName=(String)PropertyUtils.getNestedProperty(book,"author.name");//得到person的name
getIndexedProperty()访问数组或List型内Object的属性
Chapter chapter1=new Chapter();
Chapter chapter2=new Chapter();
book.getChapters().add(chapter1);
book.getChapters().add(chapter2);
Chapter chapter=(Chapter)PropertyUtils.getIndexedProperty(book,"chapter[0]");
getMappedProperty()访问Map型bean属性的值
Person person=new Person();
person.setName=("heis");
Map favorites=new HashMap();
favorites.put("food","rice");
person.setFavorite(favorites);
String favorFood=(String)PropertyUtils.getMappedProperty(person,"favorites(food)");->rice
getProperty()和setProperty()可以访问任何bean属性,通过表达式可以完成上面方法的功能
这是一个树型的Bean属性视图
Book book
|--List authors
|--[0]->Person person
|--Map favorites
|--Entry(key->"food",value->"")
PropertyUtils.setProperty(book,"authors[0].favorites(food)","rice");
String favorFood=(String)PropertyUtils.getProperty(book,"authors[0].favorites(food)");->rice
isReadable()和isWritable()检查bean是否可读(有getter)或可写(有setter)
PropertyUtils.isReadable(book,"name");
PropertyUtils.isWritable(book,"name");
getPropertyType()获取属性类型
System.out.println(PropertyUtils.getPropertyType(person,"favorites"));->java.util.Map
copyProperty()复制Bean属性,只复制引用,final类型和原始类型(primitive type)
Book book1=new Book();
book1.setName("Commons Cookbook Notes");
Book book2=new Book();
PropertyUtils.copyProperty(book2,book1);//将book1的name属性copy到book2
describe()创建包含Bean属性的Map
Person person=new Person();
person.setName("heis");
Book book=new Book();
book.setName("Commons Cookbook Notes");
book.setAuthor(person);
Map propMap=PropertyUtils.describe(book);
propMap.get("name");->Commons Cookbook Notes
propMap.get("author");->person
分享到:
相关推荐
7. **Apache Commons BeanUtils** 和 **Apache Commons PropertyUtils**:这两个模块提供了 Java 对象属性操作的便利工具,可以简化对象之间的属性复制和属性访问。 8. **Apache Commons Configuration**:提供了一...
Apache Commons BeanUtils是Java开发中广泛使用的工具库,主要用于处理JavaBean对象的属性操作。这个库的核心功能在于简化了JavaBean对象的属性设置、获取以及复制等操作,使得开发者能够更加方便地进行数据绑定和...
在实际项目中,Apache Commons BeanUtils库通常与其他Apache Commons库结合使用,如Collections、IO等,以提供更全面的工具集。它的使用能够大大提高开发效率,减少代码重复,使得代码更加专注于业务逻辑,而不是...
Commons Collections和Apache BeanUtils是Java开发中常用的两个库,它们为开发者提供了丰富的工具类和功能,使得处理集合对象和Bean属性变得更加便捷。这两个库在Java Web开发中扮演着重要角色,尤其是在构建MVC框架...
`commons-logging`库提供了类`org.apache.commons.logging.Log`和`org.apache.commons.logging.LogFactory`,它们作为接口和工厂类,使得日志系统的切换变得灵活且无痛。 这两个库在Java应用中的结合使用,通常是...
- `org.apache.commons.beanutils.PropertyUtils`:扩展了BeanUtils的功能,增加了对复杂属性路径的支持,可以处理嵌套的JavaBean属性。 - `org.apache.commons.beanutils.Converter`:这是一个接口,定义了如何...
- `org.apache.commons.beanutils.PropertyUtils`: 这个类进一步扩展了BeanUtils的功能,提供了更细致的属性操作,如集合属性的处理。 - `org.apache.commons.beanutils.Converter`: 这是用于类型转换的接口,用户...
Commons BeanUtils库是Apache软件基金会开发的一个Java工具包,主要用于简化JavaBean的处理。这个库在标题中提及的"commons-beanutils-1.8.3.jar.zip"是一个压缩文件,其中包含了`commons-beanutils-1.8.3.jar`,这...
- `org.apache.commons.beanutils.PropertyUtils`: 提供了更高级的属性访问和复制功能,包括动态属性处理。 - `org.apache.commons.beanutils.Converter`: 定义了转换器接口,用于自定义数据类型转换规则。 - `org....
标题和描述中提到的"commons-beanutils-1.8.3.jar", "commons-codec-1.7.jar", "commons-collections-3.2.1.jar"是Apache Commons项目中的三个不同组件的JAR文件,这些文件在Java开发中被广泛使用。Apache Commons是...
Apache Commons BeanUtils是Java开发中的一个实用工具库,它提供了对JavaBeans属性操作的强大功能,极大地简化了在Java...对于Java开发者来说,理解和掌握Apache Commons BeanUtils库的使用是提高开发效率的重要一步。
PropertyUtils是Apache Commons BeanUtils的扩展,它增强了对复杂类型和集合的处理能力。与BeanUtils相比,PropertyUtils提供了更精确的异常处理。尽管在功能上有所增强,但在性能上与BeanUtils相差不大。 Spring...
import org.apache.commons.beanutils.PropertyUtils; public class Main { public static void main(String[] args) throws Exception { Person person = new Person(); PropertyUtils.setProperty(person, ...
Apache Commons BeanUtils与Apache Commons Collections是两个非常重要的Java开源库,它们在开发过程中...总的来说,Apache Commons BeanUtils和Collections是Java开发中的得力助手,但使用时也要谨慎对待安全问题。
9. **Integration with Other Commons Libraries**:Apache Commons BeanUtils与其他Apache Commons库(如Collections、Lang等)兼容,可以一起使用以实现更强大的功能,如集合操作、日期处理等。 10. **Version ...
在标题中提到的"commons-beanutils-1.8.0.rar"是一个包含Apache Commons BeanUtils 1.8.0版本的压缩文件,其中主要包含了一个名为"commons-beanutils-1.8.0.jar"的Java档案(JAR)文件。 Apache Commons BeanUtils...
主要的类和接口位于`org.apache.commons.beanutils`包下。例如,`BeanUtils`是核心类,`PropertyUtils`提供了更高级的属性操作,`ConvertUtils`负责类型转换,而`BeanComparator`则用于基于Bean属性的比较。 在阅读...
在实际项目中,Apache Commons Lang和BeanUtils通常与其他Apache Commons库一起使用,如IO、Collections和Validation,共同构建强大的工具链,提高开发效率。如果你希望深入了解这些工具类库,可以参考提供的博文...
Apache Commons BeanUtils是Java开发中的一个实用库,它提供了对JavaBeans对象的便捷操作。这个"commons-beanutils-1.8.2-bin"全功能包包含了一系列的jar文件,这些文件是BeanUtils库的核心组成部分,允许开发者更...
《Apache Commons BeanUtils 1.8.0-BETA:深入解析与应用》 Apache Commons BeanUtils 是一个流行的Java库,它提供了对JavaBeans属性的简便操作。在Java开发中,BeanUtils库极大地简化了对象属性的获取和设置,使得...