Java的Optional类

121 阅读1分钟

1. Optional介绍

阿里巴巴的《JAVA开发手册》中:防止 NPE,是程序员的基本修养,使用 JDK8 的 Optional 类来防止 NPE 问题

2.关于Optional的使用

情况1:如果为null就返回默认值

String s = null;
String res = Optional.ofNullable(s).orElse("");

情况2:对一个对象链式调用,如果出现null则走默认值

OptionalTest t = new OptionalTest();
SMSVO smsvo = new SMSVO();
smsvo.setFDETAIL("123");
t.setSmsvo(smsvo);
//一层层调用
String res = Optional.ofNullable(t)
                        .map(OptionalTest::getSmsvo)
                        .map(SMSVO::getFCUSTOMERCODE)
                        .orElse("");

情况3:校验时出现null值时抛出异常而不是返回默认值

SMSVO smsvo = new SMSVO();
String smsVO = Optional.ofNullable(smsvo)
        .map(SMSVO::getFDETAIL)
        .map(String::trim)
        .orElseThrow(()->new RuntimeException("存在null值"));