多级对象判null,采用optional更加简洁优雅
一、示例代码
错误代码:
URL url = null;
String connPath = "";
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
if (classLoader != null) {
url = classLoader.getResource("");
if (url != null) {
connPath = url.getPath();
}
}
说明:代码嵌套过深,逻辑不清晰
正确代码:
String connPath = Optional.ofNullable(Thread.currentThread().getContextClassLoader())
.map(classLoader -> classLoader.getResource(""))
.map(URL::getPath)
.orElse("");
二、规范要求
避免方法的代码块嵌套过深,不要超过4层
三、问题总结
如果涉及到多级对象判null,可以使用Optional减少嵌套
参考:使用optional处理null
https://segmentfault.com/a/1190000008692522

浙公网安备 33010602011771号