java - 如何从 Java 中的 Enum 值返回具有所有属性的 Enum 对象

标签 java enums

我有一个场景以 json 形式返回状态列表,这些列表可在状态枚举中使用,我的枚举如下所示

示例:-

public enum Status {

CREATED("100", "CREATED"), UPDATED("200", "UPDATED"), DELETED("300", "DELETED");

private final String id;
private final String name;

private Status(String id, String name) {
    this.id = id;
    this.name = name;
}

public String getId() {
    return id;
}

public String getName() {
    return name;
}

@Override
public String toString() {
    return name;
}

public List<Map<String, String>> lookup() {
    List<Map<String, String>> list = new ArrayList<>();
    for (Status s : values()) {
        Map<String, String> map = new HashMap<>();
        map.put("ID", s.getId());
        map.put("name", s.getName());
        list.add(map);
    }
    return list;

}
}

需要这样的输出:

[{id:"100",name:"已创建"},{id:"200",name:"已更新"}...] 我已经用映射列表编写了查找方法来构建响应,是否有更好的方法或实用程序将枚举转换为具有枚举中可用的所有属性的对象。

有没有更好的方法来做到这一点?

最佳答案

您可以使用 Jackson 转换为 JSON。只需包含 @JsonFormat(shape = Shape.OBJECT) 在枚举声明中。这应该会给你结果。

关于java - 如何从 Java 中的 Enum 值返回具有所有属性的 Enum 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621813/

相关文章:

java - 如何将 Java 枚举与 Amazon DynamoDB 和 AWS SDK v2 结合使用?

任何枚举类型的 C++11 哈希函数

java - 枚举可以是两个阶段的一部分吗?

c++ - Libtorrent 设置枚举

java - Spinner 不会出现在中心 (Android Studio)

java - 关于 com.jcraft.jsch.JSchException : UnknownHostKey: x. y.com 的查询。 DSA key 指纹为 "ac:ew:...."

java - 部分消耗 Publisher<DataBuffer>

java - 在已编译的 Java 应用程序中实现日志记录?

java - 为什么在 Enum hashCode() 中引用 Object hashCode() 实现,而不是 ordinal() 函数?

java - 列表<对象> 和列表<?>