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值"));