[url]http://hi.baidu.com/303132376/item/adfebff703f0132e753c4c10[/url]
需要导入commons-beanutils.jar 和 commons-logging.jar
下面是两个javaBean
Author.java
Book.java
Bean2Map.java
需要导入commons-beanutils.jar 和 commons-logging.jar
下面是两个javaBean
Author.java
package com.beanUtil;
public class Author {
private String name;
public Author() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Book.java
package com.beanUtil;
public class Book {
private String name;
private Author author;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Author getAuthor() {
return author;
}
public void setAuthor(Author author) {
this.author = author;
}
}
Bean2Map.java
package com.beanUtil;
import java.util.Map;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.PropertyUtils;
public class Bean2Map {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Author author = new Author();
author.setName("wenliang.li");
Book book = new Book();
book.setName("pro spring");
book.setAuthor(author);
// 取得book中的所有可读属性,返回到map中
Map<String, Book> bookMap = null;
Map<String, Author> authorMap = null;
try {
bookMap = PropertyUtils.describe(book);
// Book类中包含一个Author类型的属性
// 取bookMap中的author bean,并将其所有可读属性返回到authorMap中
authorMap = PropertyUtils.describe(bookMap.get("author"));
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 输出
// Book Name: pro spring
// Author Name: wenliang.li
System.out.println("Book Name: " + bookMap.get("name"));
System.out.println("Author Name: " + authorMap.get("name"));
}
}