介绍
javabean和map类似,都有属性 和 值 的概念,可以互相转换
jar
普通工程,需要用到:commons-beanutils-1.9.3.jar
maven依赖
maven工程添加依赖如下:
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
准备javabean
注意: 该类必须由public修饰,否则无法正确转换
public class Book{
private String name;
private String author;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
BeanUtils 实现 javabean 转 map
注意:转换后map中的value都是 String 类型
Book book=new Book();
book.setName("java从入门到放弃");
book.setAuthor("匿名");
Map<String,String> map=null;
try {
map= BeanUtils.describe(book);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
if(map!=null) {
for (Map.Entry<String,String> en : map.entrySet()) {
System.out.println(en.getKey() + "---" + en.getValue());
}
}
执行结果:
author---匿名
name---java从入门到放弃
class---class top.malaoshi.test.Book
PropertyUtils 实现 javabean 转 map
转换后map中的value是 原类型
Book book=new Book();
book.setName("java从入门到放弃");
book.setAuthor("匿名");
Map map=PropertyUtils.describe(book);
Map转javabean
注意:map中的key与javabean中的属性名必须一致
Map map=new HashMap();
map.put("name","java从入门到入坑");
map.put("author","匿名");
Book book=new Book();
try {
BeanUtils.populate(book,map);
System.out.println("name:"+book.getName());
System.out.println("author:"+book.getAuthor());
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
执行结果:
name:java从入门到入坑
author:匿名