背景

编写Java代码的过程中,十分之九的开发工程师都经历过空值的处理。

这个过程可谓是编写Java代码时要做的最繁琐的事情之一。

整洁的代码_代码整洁之道总结_代码整洁之道

空值检测

有的开发者可能会疑惑,既然null值的处理这么繁琐,为什么我们还要在代码中引入null呢?

例如,当某条数据不存在,或者描述缺少某个参数时,空值将会是一个好的结果,也就是说:

事实上,在很多场景下,我们确实需要null来表示某个结果,这使得空值检测成为我们不得不执行的操作。

if (someVariable == null){
    // do something
} else{
    // do something else
}

既然我们无法避免这种单调的过程,那么我们能想到什么方法来优化这个过程呢?

幸运的是,Java8的发布给我们带来了一个很好的解决方案,那就是。

通过引入它,我们有一种更优雅的方式来表达无值,而不是使用 null 来表达代码逻辑中的某些场景。

为我们提供了一套完整的方法来处理以下场景:

接下来,我们通过代码对比来面对面地了解和学习,从而称其为代码中的强大工具。

空值检测方法

private String getString() {  
    String result = getStringFromDB();  
    if (result == null)  
        return "It's empty";  
    else 
        return result;  
}

加工方法

private String getStringWithTrick() {  
    return Optional.ofNullable(getStringFromDB()).orElse("It's empty");  
}

空值检测方法

private String getString() throws Exception{  
    String result = getStringFromDB();  
    if (result == null)  
        throw new Exception();  
    else  
     return result;  
}

加工方法

private String getStringWithTrick() throws Exception{  
    return Optional.ofNullable(getStringFromDB()).orElseThrow(Exception::new);  
}

空值检测方法

private String getString() {  
    String result = getStringFromDB();  
    if (result == null)  
        return doCalculation();  
    else  
     return result;  
}

加工方法

private String getStringWithTrick() {  
    return Optional.ofNullable(getStringFromDB()).orElseGet(this::doCalculation);  
}

基于这些例子,你可以覆盖代码的各个方面,让代码更加优雅整洁

谢谢大家的评论、点赞和转发[感想]

关注居家程序员,不定期更新技术“硬”文章和代码生活乐趣

好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注