多级对象判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

posted @ 2021-01-12 10:42  Spirited-away  阅读(411)  评论(0)    收藏  举报