Optional类的基本使用(没怎么看)

参考:https://www.runoob.com/java/java8-optional-class.html

java8中引入了一个新类:Optional,用于日常编码中对空指针异常进行限制和处理:

 Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

Optional 类的引入很好的解决空指针异常。

返回值 方法 说明
static <T> Optional<T> empty() 返回一个空 Optional实例
static <T> Optional<T> of(T value) 将非空值设置到Optional实例并返回该实例
static <T> Optional<T> ofNullable(T value) 将值设置到Optional实例中并返回该实例
T get() 如果一个值是在这 Optional,返回值,否则将 NoSuchElementException
T orElse(T other) 如果当前有值且非空则返回该值,否则返回 other

类声明

以下是一个java.util.Optional<T>类的声明
public final class Optional<T> extends Object      

 

测试:

复制代码
package test.HimmaQ;

import java.util.Optional;



public class OptionalTest {

    public static void main(String[] args) {
        Optional.of(null);  //NullPointerException
        Optional.ofNullable(null);//可放入null值(允许为null)
        System.out.println(Optional.ofNullable("1111").get());//输出1111
        Optional.ofNullable(null).get();//Optional.get()  NoSuchElementException,当Optional中放的是null时用get()取则报该异常
        System.out.println(Optional.ofNullable(null).orElse("2222"));//输出2222
        System.out.println(Optional.ofNullable("1111").orElse("2222"));//输出1111
        System.out.println(Optional.ofNullable(null).isPresent());//输出false
        System.out.println(Optional.ofNullable("1111").isPresent());//输出true

    }

}
复制代码
 
原文地址:https://www.cnblogs.com/zouhong/p/11644415.html