response.setPeopleHealth(new ArrayList<String>() {{
for(HealthEnum e :HealthEnum.values()) {
add(e.getValue());
}
}})
sonarlint为此发出警告。
我尝试转换为单调,但不适用于for,因为它不能像arraylist一样添加。
我可以使用lambda还是流?
答案 0 :(得分:4)
对于初学者来说,停止使用new ArrayList<String>() {{...
的著名反模式,而不是考虑问题的开始,您需要一个数组-需要一个List
,因此:
List<String> list = Arrays.stream(HealthEnum.values())
.map(HealthEnum::getValue)
.collect(Collectors.toCollection(ArrayList::new));
,然后将此ArrayList
传递到您想要的位置,例如:
response.setPeopleHealth(list);