从Map拷贝属性到实体类

直接上代码
@Test
public void test19() throws IllegalAccessException {
    Map<String, Object> map = new HashMap<>();
    map.put("id", 1L);
    map.put("name", "Java编程思想");
    map.put("author", "张三");
    map.put("infor" , "test");
    Book b = new Book();
    copyMapToObject(map, b);
    System.out.println(b); //  Book{id=1, name='Java编程思想', author='张三'}
}

Book.java

public class Book {
    private long id;
    private String name;
    private String author;
    public Book() {
    }
    // 省略getter/setter
}

工具类

// copy Map中的属性 到 实体类中
public static void copyMapToObject(Map<String, Object> map, Object o) {
    Set<String> set = map.keySet();
    Class c = o.getClass();
    Field[] fields = c.getDeclaredFields();
    for (Field f : fields) {
        f.setAccessible(true);
        if (set.contains(f.getName())){
            try {
                f.set(o, map.get(f.getName()));
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容