从 Java 中的逗号分隔字符串创建枚举列表
Create List of enum from comma separated String in Java
我需要从逗号分隔的字符串创建一个枚举列表。我在属性文件中有一些配置,主要是 HttpStatus
的列表
喜欢:
some.config=TOO_MANY_REQUESTS,GATEWAY_TIMEOUT,BAD_GATEWAY
此配置可以绑定到 LIST 为:
@Value("#{'${some.config}'.split(',')}")
private List<HttpStatus> statuses;
现在可以用我的一行代码来完成吗?我收到如下字符串:
@Bean(name = "somebean")
public void do(@Value("${some.config:}") String statuses) throws IOException {
private List<HttpStatus> sList = StringUtils.isEmpty(statuses) ?
globalSeries : **Arrays.asList(statuses.split("\s*,\s*"));**
}
Arrays.asList(series.split("\s*,\s*")); 将创建一个字符串列表,现在我可以创建一个枚举列表,否则我需要迭代临时列表然后创建一个枚举列表。
您可以只使用流并使用 Enum#valueOf
将所有 String
值映射到 Enum
值
Arrays.stream(statuses.split("\s*,\s*"))
.map(HttpStatus::valueOf)
.collect(Collectors.toList());
您也可以使用模式来完成手头的任务:
Pattern.compile(regex)
.splitAsStream(myString)
.map(HttpStatus::valueOf)
.collect(toList());
我需要从逗号分隔的字符串创建一个枚举列表。我在属性文件中有一些配置,主要是 HttpStatus
喜欢:
some.config=TOO_MANY_REQUESTS,GATEWAY_TIMEOUT,BAD_GATEWAY
此配置可以绑定到 LIST 为:
@Value("#{'${some.config}'.split(',')}")
private List<HttpStatus> statuses;
现在可以用我的一行代码来完成吗?我收到如下字符串:
@Bean(name = "somebean")
public void do(@Value("${some.config:}") String statuses) throws IOException {
private List<HttpStatus> sList = StringUtils.isEmpty(statuses) ?
globalSeries : **Arrays.asList(statuses.split("\s*,\s*"));**
}
Arrays.asList(series.split("\s*,\s*")); 将创建一个字符串列表,现在我可以创建一个枚举列表,否则我需要迭代临时列表然后创建一个枚举列表。
您可以只使用流并使用 Enum#valueOf
String
值映射到 Enum
值
Arrays.stream(statuses.split("\s*,\s*"))
.map(HttpStatus::valueOf)
.collect(Collectors.toList());
您也可以使用模式来完成手头的任务:
Pattern.compile(regex)
.splitAsStream(myString)
.map(HttpStatus::valueOf)
.collect(toList());