使用PropertyUtils 将javaBean转化成Map
http://hi.baidu.com/303132376/item/adfebff703f0132e753c4c10
需要导入commons-beanutils.jar 和 commons-logging.jar
下面是两个javaBean
Author.java
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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")); } } |
