参考: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 } }
 

最新文章

  1. CentOS x64上Matlab R2015b的镜像安装方法与卸载
  2. JavaScript学习笔记6 之经典神坑题整理
  3. POJ C++程序设计 编程题#2 编程作业—多态与虚函数
  4. Booting ARM Linux
  5. qsort函数、sort函数 (精心整理篇)
  6. VC 设置 Stack Overflow
  7. [转] 用实例给新手讲解RSA加密算法
  8. Eclipse SVN 安装注意事项
  9. 【4】学习JS 数据结构与算法笔记
  10. Java中关于HashMap的使用和遍历(转)
  11. rewirte 规则
  12. 使用C# (.NET Core) 实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)
  13. 迎战大数据-Oracle篇
  14. 第5章 简单的C程序设计——循环结构程序设计
  15. CSS3背景相关新增属性
  16. Database testing test scenarios
  17. Java多线程:SimpleDateFormat
  18. 文件操作 freopen函数
  19. VS中自动选择x86或x64的dll
  20. as3 优化

热门文章

  1. 第一周 coursera.org
  2. Lua table concat
  3. Go语言【项目】 websocket消息服务
  4. 『2019 SummerCamp 总结』
  5. java ASM
  6. 【1】【leetcode-139】【回溯超时、动态规划】单词拆分
  7. Java Base64Utils
  8. C# 转成金额每三位逗号隔开
  9. Navicat 破解版(操作非常简单)
  10. Restart container within pod