Optional简略用法

2018-07-24 07:52:49来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

  Java在8的版本,新增了Optional和lambda表达式,使得日常开发中对于NullPointException的判断变的优雅。

现在来个例子看看在Optional之前对空的判断。

@Test
public void testOpt() {
        User u = new User();
        u.setName("hy");
        if (u != null && u.getName() != null) {
            System.out.println(u.getName());
        }
        
   }
public class User {
    private String name;
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

如果层级更深的话,那就更难看一些...

看看通过Optional改造后的版本

@Test(expected = MyException.class)
    public void testOpt() {
        User s = new User();
        s = null;
        // s.setName(null);
        Optional<User> opt = Optional.ofNullable(s);
        String name = opt.map(user -> user.getName()).orElseThrow(()-> new MyException("异常"));
        //Assert.assertEquals("hy", name);
        System.out.println(name);
    }
public class MyException extends RuntimeException {
    MyException() {

    }

    MyException(String mgs) {
        super(mgs);
    }
}

没有了恼人的if判空,变的优雅很多,其实lambda表达式使之前很多很繁琐的表达变的优雅,以后也会把更多的优雅用法贴到这里备忘。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【java基础】 == 和 equals() 的区别

下一篇:AOP学习