栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【code】习惯使用 !=null 判空?试试 Java 8 的全新写法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【code】习惯使用 !=null 判空?试试 Java 8 的全新写法

使用2行代码,还是使用10行代码?
有时候想要拿到param.expression。但是,前面一个为空了,导致了空指针异常!然后就一堆的if判断似乎逻辑挺好,优化判断方式似乎简洁一些。可否有更简单方式呢?

public class TestMain {
    private DataJsonDto json;

    //执行方法前
    @Before
    public void setUp() throws Exception {
        json = null;
    }

    
    @Test
    public void handlerNullPointerException1() throws Exception {
        if (json != null) {
            Parameter param = json.getParameter();
            if (param != null) {
                if (param.getExpression() != null) {
                    String expression = param.getExpression();
                    // TODO 执行业务
                    System.out.println("想要expression值:" + expression);
                }
            }
        }
    }

    
    @Test
    public void handlerNullPointerException2() throws Exception {
        if (json == null) {
            return;
        }
        Parameter param = json.getParameter();
        if (param == null) {
            return;
        }
        if (param.getExpression() == null) {
            return;
        }
        String expression = param.getExpression();
        // TODO 执行业务
        System.out.println("想要expression值:" + expression);
    }

    
    @Test
    public void handlerNullPointerException3() throws Exception {
        Parameter param = Optional.ofNullable(json).map(u -> u.getParameter()).orElse(new Parameter());
        String expression = Optional.ofNullable(param).map(u -> u.getExpression()).orElse(null);
        // TODO 执行业务
        System.out.println("想要expression值:" + expression);
    }

    
    @Test
    public void handlerNullPointerException4() throws Exception {
        String expression = Optional.ofNullable(json).map(u -> u.getParameter()).map(a -> a.getExpression()).orElse(null);
        // TODO 执行业务
        System.out.println("想要expression值:" + expression);
    }
}

采用链式编程,虽然代码优雅了。但是,逻辑性不明显,同时可读性也有所降低。
依照心情,酌情使用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号