获取枚举的值作为字符串列表

时间:2019-03-20 16:01:34

标签: java enums

我有以下枚举,想将其转换为其字符串值的列表:

@Getter
@AllArgsConstructor
public enum danger{

    Danger("DGR"),
    Normal("NOR");


    /**
     * The value.
     */
    private final String value;
}

所需的输出:“ DGR”和“ NOR”列表

我当前的解决方案如下:

List<String> dangerlist = Stream.of(DangerousShipment.values())
                .map(Enum::name)
                .collect(Collectors.toList());

问题是,我只能选择枚举的名称,而不能选择实际值。

2 个答案:

答案 0 :(得分:3)

为该值添加一个吸气剂:

public enum DangerShipment {
    // Code from the OP omitted for brevity

    public String getValue() {
        return value;
    }
}

并在构造列表时使用它:

List<String> dangerlist = Stream.of(DangerousShipment.values())
                                .map(DangerousShipment::getValue)
                                .collect(Collectors.toList());

答案 1 :(得分:1)

这是完整的代码:

ni