Как исправить предупреждение sonarlint для инициализации одной строки? - PullRequest
0 голосов
/ 24 октября 2018
response.setPeopleHealth(new ArrayList<String>() {{
       for(HealthEnum e :HealthEnum.values()) { 
          add(e.getValue());
       }
      }})

sonarlint выдает предупреждение за это.

Я пытался конвертировать в синглетон, но он не работает с for, потому что его нельзя добавить как arraylist.

Могу ли я использовать лямбдуили поток?

1 Ответ

0 голосов
/ 24 октября 2018

Для начала прекратите использовать известный анти-паттерн new ArrayList<String>() {{..., чем подумайте о своей проблеме, для начала у вас есть массив - вам нужно List, таким образом:

List<String> list = Arrays.stream(HealthEnum.values())
      .map(HealthEnum::getValue)
      .collect(Collectors.toCollection(ArrayList::new));

и passэто ArrayList где вы хотите, например:

response.setPeopleHealth(list);
...