hutool BeanUtil.BeanToMap
时间: 2023-10-10 17:06:44 浏览: 66
hutool BeanUtil.BeanToMap 是一个 Java 工具类库 Hutool 中的一个方法,用于将一个 JavaBean 对象转换为一个 Map 对象。这个方法可以方便地将 JavaBean 对象的属性转换为 Map 中的键值对,使得我们可以更方便地对 JavaBean 对象进行操作。该方法的使用需要引入 hutool-all 依赖。
相关问题
hutool BeanUtil.BeanToMap 使用案例
假设有一个 JavaBean 类 User,它包含了三个属性:id、name 和 age。我们可以通过 hutool BeanUtil.BeanToMap 方法将 User 对象转换为 Map 对象,代码如下:
```java
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import java.util.Map;
public class User {
private int id;
private String name;
private int age;
// 省略 getter 和 setter 方法
public static void main(String[] args) {
User user = new User();
user.setId(1);
user.setName("张三");
user.setAge(20);
// 将 User 对象转换为 Map 对象
Map<String, Object> map = BeanUtil.beanToMap(user);
// 输出转换后的 Map 对象
System.out.println(MapUtil.join(map, "\n"));
}
}
```
运行上面的代码,可以得到如下输出结果:
```
age=20
id=1
name=张三
```
可以看到,hutool BeanUtil.BeanToMap 方法将 User 对象的属性转换为了 Map 中的键值对,并且 Map 中的键与 JavaBean 对象的属性名相同。我们可以通过这个 Map 对象更方便地对 User 对象进行操作。
BeanUtil.beanToMap()中,嵌套对象字段也转下划线
在使用`BeanUtil.beanToMap`方法将Java对象转换为Map时,如果需要将嵌套对象字段也转换为下划线格式,可以使用Hutool中的`BeanUtil.fillBeanWithMap`方法。
该方法可以将Map中的键值对填充到Java对象中,同时支持将Map中的下划线格式的键自动转换为驼峰格式的Java对象属性名,以及将Java对象属性名自动转换为下划线格式的键。
示例代码如下:
```java
// 定义Java对象
public class User {
private String name;
private int age;
private Address address;
// 省略getter/setter方法
}
public class Address {
private String province;
private String city;
// 省略getter/setter方法
}
// 将Java对象转换为Map
User user = new User();
user.setName("张三");
user.setAge(20);
Address address = new Address();
address.setProvince("广东省");
address.setCity("深圳市");
user.setAddress(address);
Map<String, Object> map = new HashMap<>();
BeanUtil.beanToMap(user, map, false, true);
System.out.println(map);
// 输出结果:{name=张三, age=20, address_province=广东省, address_city=深圳市}
```
在上面的示例中,通过设置`BeanUtil.fillBeanWithMap`方法的第三个参数为`false`,可以禁用Map中的驼峰格式的键自动转换为Java对象属性名。而通过设置第四个参数为`true`,可以启用Java对象属性名自动转换为下划线格式的键。这样,就可以将嵌套对象字段也转换为下划线格式。