Java 8 如何正确使用 Optional

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;import java.util.Optional;@Data
@EqualsAndHashCode(exclude={"self"})
@ToString(callSuper=true, exclude="self")
public class PersonDto {private Integer id;private String name;private String password;private Double self;public boolean validateName1() {return StringUtils.equals("hjz", name);}public static boolean validateName2(String name) {return StringUtils.equals("hjz", name);}public static void main(String[] args) {PersonDto personDto = new PersonDto();personDto.setName("hjz");
//        String name = Optional.ofNullable(personDto)
//                .map(obj -> obj.getName())
//                .filter(StringUtils::isNotEmpty)
//                .orElseThrow(()->new IllegalArgumentException("The value of param personDto isn't available."));//        String name = Optional.ofNullable(personDto)
//                .map(obj -> obj.getName())
//                .filter(PersonDto::validateName2)
//                .orElseThrow(()->new IllegalArgumentException("The value of param personDto isn't available."));
String name = Optional.ofNullable(personDto).filter(PersonDto::validateName1).map(obj -> obj.getName()).orElseThrow(()->new IllegalArgumentException("The value of param personDto isn't available."));System.out.println(name);}
}

转载于:https://www.cnblogs.com/hujunzheng/p/7299572.html

java8 Optional正确使用姿势相关推荐

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

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

  2. 论机器学习的正确学习姿势

    论机器学习的正确学习姿势 策划 | 刘燕作者 | Caleb Kaiser翻译 | Sambodhi编辑 | Linda很多开发人员并没有机器学习领域的背景,在机器学习如火如荼的今天,没学过机器学习的 ...

  3. 什么叫取反_转载:CodeReview正确的姿势是什么?

    作者:微博是阿里孤尽 链接:https://www.zhihu.com/question/383079175/answer/1109655276 来源:知乎 著作权归作者所有.商业转载请联系作者获得授 ...

  4. class ts 扩展方法_ts类型声明文件的正确使用姿势

    ts类型声明文件的正确使用姿势 ts声明文件类型 npm install @types/jquery --save-dev 与npm一同发布 解释: package.json 中有 types 字段, ...

  5. java同步锁如何使用_java 同步锁(synchronized)的正确使用姿势

    关于线程安全,线程锁我们经常会用到,但你的使用姿势正确不,反正我用错了好长一段时间而不自知.所以有了这篇博客总结下线程锁的正确打开姿势 废话不说看例子 一,对整个方法进行加锁 1,对整个方法进行加锁, ...

  6. 直播预告|中台基石腾讯云TStack的正确使用姿势

    各位亲爱的小伙伴们,你们好啊~~ 他二哥技术直播又和大家见面了! 还记得在第一期的节目中,Sandy小姐姐和两位技术哥哥带我们见识了腾讯自研交换机的强大实力. (赶紧戳链接复习☝) 这次直播,他二哥邀 ...

  7. MongoDB系列:五、MongoDB Driver使用正确的姿势连接复制集

    MongoDB复制集(Replica Set)通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用.但需要注意的时,连接副本集的姿势如果不对,服务高可用将不复存在. 使用复 ...

  8. java 日志使用_Java日志正确使用姿势

    前言 关于日志,在大家的印象中都是比较简单的,只须引入了相关依赖包,剩下的事情就是在项目中"尽情"的打印我们需要的信息了.但是往往越简单的东西越容易让我们忽视,从而导致一些不该有的 ...

  9. Python re 库的正确使用姿势

    前提假设: 已经充分掌握 PCRE 风格正则表达式 熟读 re 库文档 Why 正则表达式的强大已不用我赘述,Python 对此的支持也是十分强大,只不过: re.search(pattern, st ...

最新文章

  1. 华为存储iscsi配置_网络+存储+虚拟化:三大要素构建新网络
  2. 【转】C++中this指针的用法详解
  3. 阿里云 apt-get update 403
  4. 梯度下降法进行线性回归---------二维及多维
  5. Windows API入门系列之五 -一个正儿八经的SDK程序
  6. python socket tcp远控_Python3实现ICMP远控后门(中)之“嗅探”黑科技
  7. NLP基础|中英文词向量评测理论与实践
  8. winform自定义消息提示框定时自动关闭
  9. Python绘图 \ 数据可视化
  10. FLURRY 文档摘要及备注
  11. 图片img或者含有img元素拖拽时的阴影效应问题
  12. USB OTG功能是什么意思?
  13. 绝对不变性原理、内模原理
  14. 5.25 FLASH
  15. 主键和唯一索引的区别
  16. UWB测距 方法,双向双边测距法(DS-TWR)(四)
  17. python基础函数应用
  18. [JAVA]如何使用百度 API STORE —— 以翻译接口为例
  19. EagleClouds专业网站建设和软件开发服务
  20. 蓝牙及其安全技术概述

热门文章

  1. python实训总结万能版3000字_实训总结万能版2000字范文五篇
  2. 用c语言绘制自定义图形,Android使用自定义View绘图
  3. linux 分割pdf,PDFBox分割PDF文档
  4. java 电子编号生成器_业务编号生成器
  5. adobe怎么统计字数_SEO技能:怎么写站内文章对网站排名更好?
  6. SpringBoot2.x 优秀开源项目
  7. Docker 容器导出为镜像
  8. Linux环境 Jenkins集成构建SonarQube
  9. 软考 - 法律法规 标准化
  10. 封装一个邮件发送工具类,一个字,巴适