美文网首页
java中Optional的正确使用方法

java中Optional的正确使用方法

作者: 昆猪IMK | 来源:发表于2019-11-18 15:02 被阅读0次

java8 引入了Optional类,让我们可以以一种更加优雅的方式处理代码里的各种null值,但如果只是用Optional的isPresent()方法来代替原来代码中的null判断的话,其实和原来的写法也没有太大的区别,代码依然臃肿,也依然不利于阅读。
实际上除了isPresent()之外,optional提供的map(), orElse(), orElseGet()等方法才是Optinal真正的强大之处,下面的代码组合使用了map()和orElse()方法来处理null值,看下是不是比用各种if-else来判断null值优雅多了呢。

import java.util.Optional;

public class TestOptional {

    public static void main(String[] args) {
        Entityt1 e1 = new Entityt1();
        //        Entityt1 e1 = null;

        //e1.getS1()为null
        System.out.println(e1.getS1());

        //option - 对于null值判断的优雅写法(将原本需要复杂if-else的判断写成一句)(若e1为null也会打印"empty val")
        Optional<Entityt1> op1 = Optional.ofNullable(e1);
        System.out.println(op1.map(op2 -> op2.getS1()).orElse("empty val"));

        //以下语句与上面用optional的语句等效
        if (e1 != null) {
            if (e1.getS1() != null) {
                System.out.println(e1.getS1());
            } else {
                System.out.println("empty val");
            }
        } else {
            System.out.println("empty val");
        }
    }
}

class Entityt1{

    private String s1;

    private String s2;

    public String getS1() {
        return s1;
    }

    public void setS1(String s1) {
        this.s1 = s1;
    }

    public String getS2() {
        return s2;
    }

    public void setS2(String s2) {
        this.s2 = s2;
    }
}

相关文章

  • java中Optional的正确使用方法

    java8 引入了Optional类,让我们可以以一种更加优雅的方式处理代码里的各种null值,但如果只是用Opt...

  • Java9 改进的 Optional 类

    Java 9 改进的 Optional 类 Java 9 新特性 Optional 类在 Java 8 中引入,O...

  • Java 9 改进的 Optional 类

    Optional 类在 Java 8 中引入,Optional 类的引入很好的解决空指针异常。 Optional ...

  • Optional

    Java8中Optional为util包中一个类 创建Optional对象 Optional.of() 传入对象不...

  • java8中的函数式编程

    作者:刘仁鹏参考资料: 使用 Java8 Optional 的正确姿势 《Java8函数式编程》Richard W...

  • java8新特性之Optional

    Optional的出现是为了解决java由来已久的null安全问题,正确的使用Optional会让你的代码写得十分...

  • Optional类

    Optional类为Java8新引入的一个类,Optional是一个可以为null的容器对象,Optional中的...

  • 解决NPE:Java8的Optional 类

    一、简述 Optional 的完整路径是 java.util.Optional,使用它是为了避免代码中的if (n...

  • java Optional的正确使用姿势

    我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是...

  • Java Optional

    Java从1.8开始,引入一个class Optional(java.util.Optional)。它...

网友评论

      本文标题:java中Optional的正确使用方法

      本文链接:https://www.haomeiwen.com/subject/akcbictx.html