怎么在JAVA中使用可选类

  介绍

怎么在JAVA中使用可选类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

可选在JAVA中被定义为一个容器类,更确切的说只存一个元素的容器。

容器对象可能会或可能不会包含一个非空值。

可选类结构选属性

可选类中包含两个属性:

类属性:空对象属性:值

空属性用来存放一个值为零的可选的对象。
价值属性用来存放非零对象。

可选方法

可选的有两个构造方法,都被私人修饰。

private 可选(),{   时间=this.value 才能;零;   }   private 可选(T 价值),{   时间=this.value 才能;Objects.requireNonNull(价值);   }

无参构造方法用来初始化空的。有参构造方法用来初始化非零对象。

因为构造方法被修饰为私有的,可选想要实例化对象只能通过类方法调用.Optional提供三个类方法。

空:返回值为null的可选的对象:返回值非零的可选的对象ofNullable:值的值根据参数是否为零返回对应的可选的对象

public  static, Optional,空(),{   Optional<才能;T>, t =, (Optional,, (T 价值),{   return 才能new  Optional<祝辞(价值);   }      public  static  & lt; T>, Optional, ofNullable (T 价值),{   return 才能;value ==, null  ?,空(),:,(价值);   }

实例方法介绍

方法参数类型返回类型说明
得到无Tvalue为空抛出NoSuchElementException异常
isPresent无booleanvalue为零则返回falseifPresentConsumer<?超级T>空白如果可选实例有值则为其调用消费者,否则不做处理filterPredicate<?超级T> Optional< T>如果值存在并且满足提供的谓词,就返回包括该值的可选的对象,否则返回一个空的可选的对象mapFunction<?超级T, ?扩展标签;Optional<标签;如果值存在,就对该值执行提供的映射函数调用,返回Optional<标签;对象flatMapFunction<?超级T, Optional<标签;祝辞Optional<标签;如果值存在,就对该值执行提供的映射函数调用,返回非零可选的对象orElseTT如果有值则将其返回,否则返回一个默认值orElseGetSupplier<?扩展T> T如果有值则将其返回,否则返回一个由指定的供应商接口生成的值orElseThrowSupplier<?扩展X> & lt; X扩展Throwable>如果有值则将其返回,否则抛出一个由指定的供应商接口生成的异常

怎么在JAVA中使用可选类