Optional 容器类:用于尽量避免空指针异常

* Optional.of(T t) : 创建一个 Optional 实例

* Optional.empty() : 创建一个空的 Optional 实例

* Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例

* isPresent() : 判断是否包含值

* orElse(T t) :  如果调用对象包含值,返回该值,否则返回t

* orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值

* map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()

* flatMap(Function mapper):与 map 类似,要求返回值必须是Optional

Optional.of(T t) : 创建一个 Optional 实例

Optional<Employee> op = Optional.of(new Employee());
Employee emp = op.get();

Optional.empty() : 创建一个空的 Optional 实例

Optional<Employee> op = Optional.empty();

Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例

Optional<Employee> op = Optional.ofNullable(null);

isPresent() : 判断是否包含值

    Optional<Employee> op = Optional.ofNullable(new Employee());if(op.isPresent()){System.out.println(op.get());}

orElse(T t) :  如果调用对象包含值,返回该值,否则返回t

Employee emp = op.orElse(new Employee("张三"));System.out.println(emp);

orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值

Employee emp2 = op.orElseGet(() -> new Employee());System.out.println(emp2);

map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()

        Optional<Employee> op = Optional.of(new Employee(101, "张三", 18, 9999.99));Optional<String> op2 = op.map(Employee::getName);System.out.println(op2.get());

 flatMap(Function mapper):与 map 类似,要求返回值必须是Optional

        Optional<String> op3 = op.flatMap((e) -> Optional.of(e.getName()));System.out.println(op3.get());

转载于:https://www.cnblogs.com/chenglc/p/8124230.html

java8-Optional相关推荐

  1. JAVA8 Optional新特性和使用详解

    文章目录 一.Optional简介 二.应用Optional 1.创建Optional对象 2.Optional中map用法 3.Optional其它方法用法 三.Optional实战 1.创建Opt ...

  2. java8 optional使用_[Java8]如何正确使用Optional

    Optional是Java8提供的为了解决null安全问题的一个API.善用Optional可以使我们代码中很多繁琐.丑陋的设计变得十分优雅.这篇文章是建立在你对Optional的用法有一定了解的基础 ...

  3. Java8 Optional剖析

    Optional存在的意义 在java8出现之前,通常在调用一个对象的方法的时候,难免会判断对象是否为Null,只有不为null才敢去调用对象的方法,这是一种安全措施,如果不注重这个null的情况,会 ...

  4. 聊一聊Java8 Optional,让你的代码更加优雅

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  5. Java8 Optional解决NPE问题

    比如现在有两个类 User 和 Address public class User {private String name;private String phone;private Address ...

  6. java8 - Optional容器

    Optional容器作用:在开发过程中经常存在if(a == null){} 这种判断,若不进行判断就会出现空指针异常的情况,java8的Optional容器出现,是我们不在需要判断是否为空,提高代码 ...

  7. Java8 Optional类用法

    文章目录 API介绍 第一组 Optional(T value) empty() of(T value) ofNullable(T value) 第二组 orElse(T other),orElseG ...

  8. Java8 Optional,可以这样用啊

    以下文章来源方志朋的博客,回复"666"获面试宝典 很多公众号其实都发过 Optional 的文章, 但大多文章都是介绍了 Optional 的 API 用法,却没有给出怎么正确的 ...

  9. Java8 Optional 最佳实践

    作者 | ES_her0 来源 | https://xie.infoq.cn/article/e3d1f0f4f095397c44812a5be 很多公众号其实都发过 Optional 的文章, 但大 ...

  10. 新容器!不再担心空指针, Java8 Optional类

    Optional<T>类(java.util.Optional)是一个容器类,它可以保存类型T的值,代表这个值存在.或者仅仅保存null,表示这个值不存在.原来用 null 表示一个值不存 ...

最新文章

  1. Case When 解决简单的是与否
  2. Win8 Metro(C#)数字图像处理--2.69中点滤波器
  3. 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
  4. Android笔记之ViewPager实现滑动页面
  5. WRF-Chem User Guide3.9.1.1 部分内容翻译
  6. sudo apt-get update后public key is not available公钥不存在问题解决
  7. Javascript中“==”与“===”的区别
  8. Apache FTPClient操作文件上传下载及公共类
  9. 【数学】奶牛编号(jzoj 2932)
  10. Python--day26--复习
  11. 喜大普奔!Django官方文档终于出中文版了
  12. html与css结合动效案例,写CSS动效的常用套路(附demo的效果实现与源码)
  13. unity改变物体轴心
  14. java 强制转换double_JAVA强制类型转换
  15. 计算机主板电杆,电脑主板cpu供电上下管怎样区分替换
  16. educoder 1-1Python 计算思维训练——公式编程
  17. 那些年 用过的经典App
  18. ubuntu16.04使用360随身wifi2代
  19. 河北科技师范学院对口计算机分数线,河北科技师范学院对口分数线
  20. 用sk-learn实现新闻的分类预测(完整代码)

热门文章

  1. Thinkphp3.2 中使用find_in_set
  2. 荷兰帝斯曼收购初创科技公司尚善 无氟光伏背板被指有利回收再利用
  3. 精益 React 学习指南 (Lean React)- 4.1 react 代码规范
  4. 清空 visual studio 查找和替换的历史记录
  5. 【成功不是等来的】生意不好问人不如问己!谈真实经验!
  6. Symfony1.4.11学习笔记(四):数据模型
  7. 东方智慧和西方智慧的比较
  8. fastdfs删除过期文件_Spring Boot 系列:使用 Spring Boot 集成 FastDFS
  9. mysql 数据类_MySQL数据类型
  10. linux安装mysql要先装jdk吗_linux安装mysql5.7.22,tomcat,jdk