简体   繁体   English

如何使用 Optionals 而不是嵌套的 if 语句?

[英]How can I use Optionals instead of nested if statement?

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;
}

How can I use Optionals in this case instead of this nested if statement?在这种情况下如何使用 Optionals 而不是这个嵌套的 if 语句?

Not clear what you're trying to achieve but if send and receive were Optional objects you could do something like this:不清楚您要实现的目标,但如果发送和接收是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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM