Optional

4.1 获取对象 ( 应用 )
     4.1.1 Optional 概述
     可能包含或不包含非 null 值的容器对象
      4.1.2方法介绍
方法名
说明
static Optional of(T value)
获取一个 Optional 对象,封装的是非 null 值的对象
static Optional ofNullable(T value)
获取一个optional对象,optional封装的值对象可以是 null也可以不是null

    4.1.3示例代码

        

public class OptionalDemo1 {
    public static void main ( String [] args ) {
       //method1();
       //public static <T> Optional<T> ofNullable(T value)
       // 获取一个 Optional 对象, Optional 封装的值对象可以是 null 也可以不是 null
       //Student s = new Student("zhangsan",23);
       Student s = null ;
       //ofNullable 方法,封装的对象可以是 null ,也可以不是 null
       Optional < Student > optional = Optional . ofNullable ( s );
       System . out . println ( optional );
    }
    private static void method1 () {
       //static <T> Optional<T> of(T value) 获取一个 Optional 对象,封装的是非 null 值的对象
       //Student s = new Student("zhangsan",23);
         Student s = null ;
       //Optional 可以看做是一个容器,里面装了一个引用数据类型的对象。
       // 返回值就是 Optional 的对象
         // 如果使用 of 方法,封装的对象如果为空,那么还是会抛出空指针异常
      Optional < Student > optional1 = Optional . of ( s );
      System . out . println ( optional1 );
    }
    }
4.2 常用方法 ( 应用 )
    4.2.1方法介绍
方法名
说明
T get()
如果存在值 , 返回值 , 否则抛出 NoSuchElementException
boolean isPresent()
如果存在值 , 则返回 true, 否则为 false

   4.2.2

 4.3处理空指针的方法(应用)

   4.3.1方法介绍

方法名
说明
T orElse(T other)
如果不为空 , 则返回具体的值 , 否则返回参数中的值
TorElseGet(Supplier<extendsT>supplier)
如果不为空,则返回具体的值,否则返回由括号中 函数产生的结果
voidifPresent(Consumer<superT>action)
如果不为空 , 则使用该值执行给定的操作 , 否则不 执行任何操作
void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
如果不为空 , 则使用该值执行给定的操作 , 否则执 行给定的基于空的操作

  4.3.2代码

public class OptionalDemo3 {
    public static void main ( String [] args ) { //method1();
       //method2();
       //method3();
       //method4();
    }
    private static void method4 () {
       //Student s = new Student("zhangsan",23);
       Student s = null ;
       Optional < Student > optional = Optional . ofNullable ( s );
       //public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
       // 如果不为空,则使用该值执行给定的操作,否则执行给定的基于空的操作。
       optional . ifPresentOrElse ( student ‐> System . out . println ( student ), () ‐> System . out . println ( " 为空         了 " ));
    }
    private static void method3 () {
       //Student s = new Student("zhangsan",23);
       Student s = null ;
       Optional < Student > optional = Optional . ofNullable ( s );
       //ifPresent (Consumer<? super T> action)
       // 如果不为空,则使用该值执行给定的操作,否则不执行任何操作
       optional . ifPresent ( student ‐> System . out . println ( student ));
    }
    private static void method2 () {
       Student s = new Student ( "zhangsan" , 23 );
       //Student s = null;
       Optional < Student > optional = Optional . ofNullable ( s );
       //orElseGet(Supplier<? extends T> supplier)
       // 如果不为空,则返回具体的值,否则返回由括号中函数产生的结果
       Student student = optional . orElseGet (() ‐> new Student ( "lisi" , 24 ));
       System . out . println ( student );
    }
    private static void method1 () {
       //Student s = new Student("zhangsan",23);
       Student s = null ;
       Optional < Student > optional = Optional . ofNullable ( s );
       //orElse(T other) 如果不为空,则返回具体的值,否则返回参数中的值
       Student student = optional . orElse ( new Student ( "lisi" , 24 ));
       System . out . println ( student );
    }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值