Optional类的基本使用

Posted himmaq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Optional类的基本使用相关的知识,希望对你有一定的参考价值。

java8中引入了一个新类: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

测试:

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

    }

}

更多方法请见java8帮助文档。

以上是关于Optional类的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

Java中的Optional类

Java中的Optional类

sublime 3 使用Snippets创建代码片段

Optional 使用方法详解

用optional取代null

第23课 可变参数模板_Optional和Lazy类的实现