Java8 新特性 记录【持续更新】

目录

[一、Stream 相关](#一、Stream 相关)

[1、findFirst 方法](#1、findFirst 方法)

二、Optional

1、如何构造Optional

[2、ifPresent 方法](#2、ifPresent 方法)


一、Stream 相关

1、findFirst 方法

Stream的findFirst方法在此流中查找第一个元素作为Optional。

如果流中没有元素,findFirst返回空的Optional。

如果流没有顺序,那么findFirst可以选择任何元素。

如果findFirst选择的元素为null,它将抛出NullPointerException。

二、Optional

JDK 1.8加入了 Optional 类。用于避免用if判空时出现空指针异常,它就是一个包裹着对象的容器。如果值存在则 isPresent()方法会返回 true,调用 get() 方法会返回该对象。

1、如何构造Optional

JDK 提供三个静态方法来构造一个 Optional:

  1. Optional.of(T value) 该方法通过一个非 null 的 value 来构造一个 Optional,返回的 Optional 包含了 value 这个值。对于该方法,传入的参数一定不能为 null,否则便会抛出 NullPointerException。

  2. Optional.ofNullable(T value) 该方法和 of 方法的区别在于,传入的参数可以为 null,进行三目运算,判断传入的参数是否为 null,如果为 null 的话,返回的就是 Optional.empty()。

  3. Optional.empty()该方法用来构造一个空的 Optional,即该 Optional 中不包含值 ------ 其实底层实现还是 如果 Optional 中的 value 为 null 则该 Optional 为不包含值的状态,然后在 API 层面将 Optional 表现的不能包含 null 值,使得 Optional 只存在 包含值 和 不包含值 两种状态。

2、ifPresent 方法

如果 Optional 中有值,则对该值调用 consumer.accept,否则什么也不做。

相关推荐
卷到起飞的数分1 小时前
JVM探究
java·服务器·jvm
Geek攻城猫1 小时前
Java生产环境问题排查实战指南
java·jvm
OtIo TALL9 小时前
redis7 for windows的安装教程
java
uNke DEPH9 小时前
Spring Boot的项目结构
java·spring boot·后端
xixingzhe29 小时前
idea启动vue项目
java·vue.js·intellij-idea
wzl2026121310 小时前
企业微信定时群发技术实现与实操指南(原生接口+工具落地)
java·运维·前端·企业微信
凌波粒10 小时前
Java 8 “新”特性详解:Lambda、函数式接口、Stream、Optional 与方法引用
java·开发语言·idea
曹牧10 小时前
Eclipse:悬停提示(Hover)
java·ide·eclipse
oyzz12010 小时前
Spring EL 表达式的简单介绍和使用
java·后端·spring
iNgs IMAC11 小时前
Redis之Redis事务
java·数据库·redis