相关疑难解决方法(0)

可选vs if / else-if性能Java 8

您好,我有两个代码示例

if / else if / else语句

private Object getObj(message) {
        if (message.getA() != null)
            return message.getA();
        else if (message.getB() != null)
            return message.getB();
        else if (message.getC() != null)
            return message.getC();
        else return null;
}
Run Code Online (Sandbox Code Playgroud)

可选陈述

private Optional<Object> wrap(Object o){
    return Optional.ofNullable(o);
}

private Object getObj(message) {
    return  wrap(message.getA())
            .orElseGet(() -> wrap(message.getB())
            .orElseGet(() -> wrap(message.getC())
            .orElse(null)));
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,这两者在性能方面如何比较(我在实际代码中大约有15-20条if-else语句)?

值得重构代码的可读性和性能,还是滥用可选选项?

另外,如果if / else-if语句增长到100+,性能损失会是多少?

提前致谢

java performance if-statement optional java-8

10
推荐指数
4
解决办法
564
查看次数

标签 统计

if-statement ×1

java ×1

java-8 ×1

optional ×1

performance ×1