`
Heis
  • 浏览: 114404 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Jakarta Commons Cookbook读书笔记--Commons BeanUtils

阅读更多

《Jakarta Commons cookbook读书笔记》系列文章

 

2 Apache Commons BeanUtils v1.7
功能说明:顾名思义,Bean Utility就是Bean小工具,主要是封装了反射(reflection)和自省(introspection)的API(可以查看java.lang.reflect和java.beans文档),对bean进行操作。
主要功能:操作Bean的属性,针对Bean属性排序,Bean和Map的转换,创建动态的Bean等

 
2.1 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
 

《Jakarta Commons cookbook读书笔记》系列文章

2
0
分享到:
评论

相关推荐

    commons-beanutils-1.8.3.jar.zip

    这个库在标题中提及的"commons-beanutils-1.8.3.jar.zip"是一个压缩文件,其中包含了`commons-beanutils-1.8.3.jar`,这是一个用于处理JavaBean属性的库的特定版本。这个版本的BeanUtils提供了许多实用方法,使得...

    jakarta commons cookbook 电子版

    《Jakarta Commons Cookbook》是Java开发领域中一本非常实用的指南,主要涵盖了Apache Jakarta Commons组件的使用技巧和最佳实践。这本书旨在帮助开发者更好地理解和利用Jakarta Commons库中的各种工具类和模块,...

    commons-beanutils-1.9.2包含全部jar包源码及API文档

    Commons BeanUtils Most Java developers are used to creating Java classes that conform to the JavaBeans naming patterns for property getters and setters. It is natural to then access these methods ...

    Jakarta Commons cookbook.chm与中文版的笔记

    《Jakarta Commons Cookbook》是Java开发者的一本重要参考资料,它主要涵盖了Apache Jakarta Commons项目中的各种组件和工具的使用方法。Apache Commons是Java开发中的一个关键部分,提供了许多实用且功能强大的类库...

    commons-beanutils-1.8.2-bin全功能包,包括所需的5个jar文件和官方API

    这个"commons-beanutils-1.8.2-bin"全功能包包含了一系列的jar文件,这些文件是BeanUtils库的核心组成部分,允许开发者更简单地处理JavaBeans属性。以下是关于这个包及其包含的内容的详细说明: 1. **BeanUtils库...

    jakarta commons cookbook.zip

    《Jakarta Commons Cookbook》是Java开发者的一份宝贵资源,它包含了一系列实用的工具类和组件,可以帮助开发者在日常编程工作中提高效率。Jakarta Commons是Apache软件基金会的一个项目,旨在为Java社区提供一系列...

    commons-beanutils-1.8.3

    commons-beanutils-1.8.3.rar官方正版免费版,BeanUtils主要提供了对于JavaBean进行各种操作。 个包主要提供用于操作JavaBean的工具类,Jakarta-Common-BeanUtils的主要功能都在这个包里实现。

    apache-jakarta旗下的所有开源项目jar文件

    apache-jakarta-commons-codec.jar apache-jakarta-commons-collections.jar apache-jakarta-commons-discovery.jar apache-jakarta-commons-email.jar apache-jakarta-commons-fileupload.jar apache-jakarta-...

    Jakarta Commons CookBook学习笔记

    ### Jakarta Commons CookBook 学习笔记 #### 一、Commons Lang: EqualsBuilder and HashCodeBuilder **1.1 概述** `EqualsBuilder` 和 `HashCodeBuilder` 是 Apache Commons Lang 包中提供的两个工具类,用于...

    jakarta-commons 相关依赖包

    jakarta-commons 相关依赖包,文件列表: commons-attributes-api.jar commons-attributes-compiler.jar commons-beanutils.jar commons-codec.jar commons-collections.jar commons-dbcp.jar commons-digester.jar ...

    jakarta.xml.bind-api-2.3.3-API文档-中文版.zip

    赠送jar包:jakarta.xml.bind-api-2.3.3.jar; 赠送原API文档:jakarta.xml.bind-api-2.3.3-javadoc.jar; 赠送源代码:jakarta.xml.bind-api-2.3.3-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-...

    commons-beanutils-1.8.3.jar

    在开始JSP上传文件之前你要准备以下几个东西: 1. commons-FileUpload 1.2 包 下载地址:...3. Commons-BeanUtils 1.7 包 下载地址:http://jakarta.apache.org/commons/beanutils/

    jakarta.validation-api-2.0.2-API文档-中文版.zip

    赠送jar包:jakarta.validation-api-2.0.2.jar; 赠送原API文档:jakarta.validation-api-2.0.2-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.2-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...

    jar包jakarta-taglibs-standard-1.1.2和commons-fileupload-1.3.2和commons-io-2.5

    在本话题中,我们关注的是三个特定的jar包:jakarta-taglibs-standard-1.1.2、commons-fileupload-1.3.2和commons-io-2.5。 1. **jakarta-taglibs-standard-1.1.2**: 这个jar包是Jakarta Taglibs项目的一部分,...

    jakarta.xml.bind-api-2.3.3-API文档-中英对照版.zip

    赠送jar包:jakarta.xml.bind-api-2.3.3.jar; 赠送原API文档:jakarta.xml.bind-api-2.3.3-javadoc.jar; 赠送源代码:jakarta.xml.bind-api-2.3.3-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-...

    jakarta.annotation-api-1.3.5-API文档-中文版.zip

    赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...

    jakarta.xml.bind-api-2.3.2-API文档-中文版.zip

    赠送jar包:jakarta.xml.bind-api-2.3.2.jar; 赠送原API文档:jakarta.xml.bind-api-2.3.2-javadoc.jar; 赠送源代码:jakarta.xml.bind-api-2.3.2-sources.jar; 赠送Maven依赖信息文件:jakarta.xml.bind-api-...

    jakarta.activation-api-1.2.1-API文档-中文版.zip

    赠送jar包:jakarta.activation-api-1.2.1.jar; 赠送原API文档:jakarta.activation-api-1.2.1-javadoc.jar; 赠送源代码:jakarta.activation-api-1.2.1-sources.jar; 赠送Maven依赖信息文件:jakarta.activation...

    jakarta.validation-api-2.0.1-API文档-中文版.zip

    赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...

Global site tag (gtag.js) - Google Analytics