zoukankan      html  css  js  c++  java
  • Optional

    Optional

    概述
    • Java 8开始引入的Optional类,主要解决的问题是空指针异常(NullPointerException)

    使用

    of()/ofNullable()
    • of() 和 ofNullable() 方法创建包含值的 Optional。两个方法的不同之处在于如果你把 null 值作为参数传递进去,of() 方法会抛出 NullPointerException,ofNullable()不会
        @Test(expected = NullPointerException.class)
        public void run() {
            User user=null;
            Optional<User> opt = Optional.of(user);
        }
        @Test
        public void run1(){
            String name=null;
            Optional<String> opt=Optional.ofNullable(name);
        }
    
    get()
    • ptional 实例中取回实际值对象的方法之一是使用 get() 方法:
    orElse() 和 orElseGet()
    • 在对象为空的时候返回默认值。
    • 如果它们接收的都是函数时,当不为空指针的情况下,orElse()仍会执行,而orElseGet()不会执行,类似懒加载原理。
        @Test
        public void run2(){
            User user=null;
           User user1=new User("langerfei@163.com");
            User result=Optional.ofNullable(user).orElse(user1);
            assertEquals("langerfei@163.com",result.getEmail());
        }
    
        @Test
        public void run3(){
            User user=null;
            User result=Optional.ofNullable(user).orElseGet(()->createUser());
            assertEquals("15363144@qq.com",result.getEmail());
        }
    
        @Test
        public void run4(){
            User user1=new User("langerfei@163.com");
            User result=Optional.ofNullable(user1).orElse(user1);
            assertEquals("langerfei@163.com",result.getEmail());
    
            User result2=Optional.ofNullable(user1).orElseGet(()->createUser());
            assertEquals("15363144@qq.com",result2.getEmail());
        }
    
        private User createUser(){
            return new User("15363144@qq.com");
        }
    
  • 相关阅读:
    排序算法的实现(冒泡,选择,插入 O(N*N)--理解方法实现
    HTTPS工作原理和TCP握手机制
    HTTP协议学习
    IP头,TCP头,UDP头,MAC帧头定义
    单链表的实现
    数字图像处理------中值滤波
    对于矩阵的理解-- by 孟岩老师
    java编码问题总结
    jsp数据库连接大全和数据库操作封装到Javabean
    构建一个高可扩展性javabean和jsp连接数据库操作
  • 原文地址:https://www.cnblogs.com/frankltf/p/10082512.html
Copyright © 2011-2022 走看看