Оператор break для switch case внутри lambda-выражения

177
20 июля 2021, 03:10

Прошу подсказать, как можно обыграть такую ситуацию с break:

...    
List<MyDTO> myDtoList = new ArrayList<>();
someList.forEach(element -> {
    switch (elenemt.getStatus()) {
        case "SUCCESS":
            myDtoList.add(new MyDTO().setSuccessStatus(true));
            break;
        case "ERROR":
            myDtoList.add(new MyDTO().setSuccessStatus(false));
            break;
    }
});

Проблема в том, что когда выполняется break, происходит прерывание выполнения forEach

Answer 1

Избавимся от switch и break и проблема решена:

List<MyDTO> myDtoList = new ArrayList<>();
someList.forEach(element -> {
    myDtoList.add( new MyDTO().setSuccessStatus(element.getStatus() == "SUCCESS")) );
});
Answer 2
someList.forEach(e -> {
    switch (element .getStatus()) {
        case "SUCCESS":
            myDtoList.add(new MyDTO().setSuccessStatus(true));
            break;
        case "ERROR":
            myDtoList.add(new MyDTO().setSuccessStatus(false))
            break;
        default:
            throw new IllegalStateException("Unexpected value: " + e.getIsBlocked());
        }
    });
READ ALSO
Enum и константы в чем отличие?

Enum и константы в чем отличие?

Старый способ имитации "перечисления":

281
Убрать фон кнопки в Swing

Убрать фон кнопки в Swing

Как убрать фон кнопки так, чтобы осталось только одно изображение? Сама иконка 16x16

161
Как отсортировать список List&lt;&gt; в JAVA?

Как отсортировать список List<> в JAVA?

Вот есть код, который выводит список объектовМне нужно что бы он при выводе сортировался по названию поля

395
Паттерн Memento в java

Паттерн Memento в java

Такой нубовский вопросС помощью паттерна Memento (знаю что устарел но так по заданию) сделать так, чтоб при выходе из графического редактора,...

208