Java 获取枚举值作为字符串列表
我有以下枚举,希望将其转换为字符串值列表:Java 获取枚举值作为字符串列表,java,enums,Java,Enums,我有以下枚举,希望将其转换为字符串值列表: @Getter @AllArgsConstructor public enum danger{ Danger("DGR"), Normal("NOR"); /** * The value. */ private final String value; } 所需输出:DGR和NOR列表 我当前的解决方案如下所示: List<String> dangerlist = Stream.of
@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());
List dangerlist=Stream.of(dangerousshipping.values())
.map(枚举::名称)
.collect(Collectors.toList());
问题是,我只能选择枚举的名称,而不能选择实际值。为值添加一个getter:
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());
List dangerlist=Stream.of(dangerousshipping.values())
.map(危险装运::getValue)
.collect(Collectors.toList());
以下是完整的代码:
public enum danger {
Danger("DGR"), Normal("NOR");
private danger(String value) {
this.value = value;
}
/**
* The value.
*/
private final String value;
/**
* @return the value
*/
public String getValue() {
return value;
}
}
List<String> dangerlist = Stream.of(danger.values())
.map(x -> x.getValue())
.collect(Collectors.toList());
公共枚举危险{
危险(“DGR”)、正常(“NOR”);
私人危险(字符串值){
这个值=值;
}
/**
*价值。
*/
私有最终字符串值;
/**
*@返回值
*/
公共字符串getValue(){
返回值;
}
}
List dangerlist=Stream.of(danger.values())
.map(x->x.getValue())
.collect(Collectors.toList());
将映射替换为dangerousshipping::getValue
顺便说一句,按照惯例,枚举实例名称应全部大写为常量。所以危险
和正常
。枚举类名的首字母大写为Danger
,而不是Danger
。最后,您可以考虑一个更具描述性的枚举名称,例如<代码> DangerLevel < /代码>。