Java8简明学习之Optional

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

如今来个例子看看在Optional以前对空的判断。spa

@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;
    }

}

若是层级更深的话,那就更难看一些...code

看看经过Optional改造后的版本blog

@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表达式使以前不少很繁琐的表达变的优雅,之后也会把更多的优雅用法贴到这里备忘。开发

相关文章
相关标签/搜索