• Java8简明学习之Optional


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

  • 相关阅读:
    51Nod
    51Nod
    51Nod
    51Nod
    51Nod
    51Nod
    51Nod
    51Nod --1133 不重叠的线段
    bzoj2440: [中山市选2011]完全平方数
    第三章:基本HTML结构
  • 原文地址:https://www.cnblogs.com/daily-note/p/9354641.html
Copyright © 2020-2023  润新知