Notice: 函数 WP_Scripts::localize 的调用方法不正确$l10n 参数必须是一个数组。若要将任意数据传递给脚本,请改用 wp_add_inline_script() 函数。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 5.7.0 版本添加的。) in /data/www/appblog/wp-includes/functions.php on line 6131

BeanUtils 实现 Map 与 Bean 进行相互转换

基本使用

Map -> Bean

BeanUtils.populate(Object bean, Map<String, ? extends Object> properties);

Bean -> Map

BeanMap testMap = new BeanMap(Object bean);

需要添加的 Maven 依赖

<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.3</version>
</dependency>

案例

public class MapBeanConvert {

    public static void main(String[] args) throws Exception {
        User user = new User();
        Map<String, Object> map = new HashMap<>();
        map.put("name", "Joe.Ye");
        map.put("home", "http://www.appblog.cn");
        map.put("city", "HZ");
        map.put("age", 25);
        BeanUtils.populate(user, map);
        System.out.println(JSON.toJSONString(user));

        BeanMap beanMap = new BeanMap(user);
        System.out.println(JSON.toJSONString(beanMap));
    }

    public static class User {
        String name;
        String home;
        int age;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getHome() {
            return home;
        }

        public void setHome(String home) {
            this.home = home;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }
}
{"age":25,"home":"http://www.appblog.cn","name":"Joe.Ye"}
{"name":"Joe.Ye","class":"com.lianlian.global.pay.test.MapBeanConvert$User","age":25,"home":"http://www.appblog.cn"}

功能封装

bean 转换成 map

private Map<String, String> bean2Map(Object object) {
    Map<String, String> map = null;
    try {
        map = BeanUtils.describe(object);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return map;
}

private BeanMap bean2Map(Object object) {
    return new BeanMap(object);
}

map 转换成 bean

private static <T> T map2Bean(Map<String, String> map, Class<T> clazz) {
    T bean = null;
    try {
        bean = clazz.newInstance();
        BeanUtils.populate(bean, map);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return bean;
}
上一篇 关于Java中RSA加签解签,私钥加密公钥解密和公钥加密私钥解密代码详解
下一篇 Java模拟Form表单提交