创建与bean属性对应的Map
使用PropertyUtils.describe()生成Map实例,其中包含了源bean中所有可读的属性.下面的代码片段演示了这个特性
Person author
=
new
Person();
author.setName( " Timothy M. O'Brien " );
Book book = new Book();
book.setName( " Jakarta Commons Cookbook " );
book.setAuthor(author);
// 取得book中的所有可读属性,返回到map中
Map bookMap = PropertyUtils.describe(book);
// Book类中包含一个Author类型的属性
// 取bookMap中的author bean,并将其所有可读属性返回到authorMap中
Map authorMap = PropertyUtils.describe(bookMap.get( " author " ));
// 输出
// Book Name: Jakarta Commons Cookbook
// Author Name: Timothy M. O'Brien
System.out.println( " Book Name: " + bookMap.get( " name " ));
System.out.println( " Author Name: " + authorMap.get( " name " ));
author.setName( " Timothy M. O'Brien " );
Book book = new Book();
book.setName( " Jakarta Commons Cookbook " );
book.setAuthor(author);
// 取得book中的所有可读属性,返回到map中
Map bookMap = PropertyUtils.describe(book);
// Book类中包含一个Author类型的属性
// 取bookMap中的author bean,并将其所有可读属性返回到authorMap中
Map authorMap = PropertyUtils.describe(bookMap.get( " author " ));
// 输出
// Book Name: Jakarta Commons Cookbook
// Author Name: Timothy M. O'Brien
System.out.println( " Book Name: " + bookMap.get( " name " ));
System.out.println( " Author Name: " + authorMap.get( " name " ));
PropertyUtils.describe()方法将返回bean中每个可读的属性都添加到Map中去.如果值为设置,将返回默认值,在上面的例子中假如Book类中还有个Integer型的page属性,代表书籍页数.在没设置的情况下,将返回null.如果page属性为int型,则将返回0