📜  HashMap 到 Pojo - Java (1)

📅  最后修改于: 2023-12-03 14:41:41.708000             🧑  作者: Mango

用 HashMap 转换成 Pojo 类型的 Java 代码实现

在 Java 编程过程中,我们经常需要将数据结构转换为另一种结构。比如将 HashMap 类型转换成 Java 对象类型(POJO,Plain Old Java Object)。这里我将介绍一种简单的方法来实现这个转换过程。

首先,我们需要定义一个 POJO

在 Java 编程中,POJO 具有以下特征:

  1. 没有继承自任何类,也没有实现任何接口。
  2. 所有属性都是私有的,并且拥有对应的 getter 和 setter 方法。

用一个例子来演示这个过程。定义一个 User 类,包含 id,name,email 等属性。

public class User {
    private Long id;
    private String name;
    private String email;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
其次,我们需要将 HashMap 转换成 POJO

我们可以使用 Java 8 的 lambda 表达式来实现这个过程。Lambda 表达式可以让我们更加简单、快速地实现一个接口。

假设我们有一个 HashMap 类型的 userMap 对象,包含了 id、name、email 等属性。我们可以用以下代码来将其转换成 User 类型的对象。

User user = new User();
userMap.forEach((key, value) -> {
    switch (key) {
        case "id":
            user.setId(Long.parseLong(value.toString()));
            break;
        case "name":
            user.setName(value.toString());
            break;
        case "email":
            user.setEmail(value.toString());
            break;
        default:
            break;
    }
});

以上代码通过循环遍历 userMap 对象中的键值对,将相应的属性值转换成 User 类型对象中的属性值。

结论

HashMap 类型转换成 POJO 类型非常简单,我们只需要定义好 POJO 类型的对象和相应的转换代码即可。当然,不同的场景和需求可能需要不同的数据处理方式,这里的示例可以作为一个参考,进行二次开发和定制。

完整代码如下所示:

public class User {
    private Long id;
    private String name;
    private String email;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

public class Main {
    public static void main(String[] args) {
        HashMap<String, Object> userMap = new HashMap<>();
        userMap.put("id", 1L);
        userMap.put("name", "张三");
        userMap.put("email", "zhangsan@example.com");

        User user = new User();
        userMap.forEach((key, value) -> {
            switch (key) {
                case "id":
                    user.setId(Long.parseLong(value.toString()));
                    break;
                case "name":
                    user.setName(value.toString());
                    break;
                case "email":
                    user.setEmail(value.toString());
                    break;
                default:
                    break;
            }
        });

        System.out.println(user.getName());
    }
}