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

  • 相关阅读:
    响应式设计
    Flex box 弹性盒子布局
    下拉菜单  -
    html使用技巧
    nth-of-type(n)
    Js中 关于top、clientTop、scrollTop、offsetTop
    仿iPhone滑屏操作
    网页超过一页 点击回到顶部
    linux svn使用
    Linux查看CPU和内存使用情况
  • 原文地址:https://www.cnblogs.com/daily-note/p/9354641.html
Copyright © 2011-2022 走看看