Java8 Optional 开发常见用法

kyaa111 2年前 ⋅ 511 阅读
class Info {
    String a;

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }
}

第一个例子

针对空指针取默认值

Info a = null;
String s = Optional.ofNullable(a).map(Info::getA).orElse("");

等效于

String s = a == null ? "" : a.getA();

map可以一直嵌套, 若Info内部属性结构复杂, 则使用Optional代码更为简洁

第二个例子

Info a = Optional.ofNullable(a).orElse(new Info());

等效于

if (a == null) {
    a = new Info();
}

省去一个if, 聊胜于无