Как я могу использовать Optionals вместо вложенного оператора if? - PullRequest
1 голос
/ 27 февраля 2020
public Message setMsg() {
    Message message = null;
    if (send != null || receive != null) {
        message = new Message();
        if (receive != null) {
            message.setReceive(receive);
        }
        if (send != null) {
            message.setSend(send);
        }
    }
    return message;
}

Как я могу использовать Optionals в этом случае вместо этого вложенного оператора if?

1 Ответ

2 голосов
/ 27 февраля 2020

Не ясно, чего вы пытаетесь достичь, но если бы отправка и получение были Optional объектами, вы могли бы сделать что-то вроде этого:

public Message setMsg() {
    if (!send.isPresent() && !receive.isPresent()) {
        return null;
    }

    Message message = new Message();
    send.ifPresent(message::setSend);
    receive.ifPresent(message::setReceive);
    return message;
}
...