gpt4 book ai didi

JAVA Optional类用法分享

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章JAVA Optional类用法分享由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Optional在JAVA中被定义为一个容器类,更确切的说只存一个元素的容器.

container object which may or may not contain a non-null value. 。

Optional类结构 Optional属性 。

Optional类中包含两个属性:

类属性:EMPTY 对象属性:value 。

EMPTY属性用来存放一个value为null的Optional对象。 value属性用来存放非null对象.

Optional方法 。

Optional的有两个构造方法,都被private修饰.

?
1
2
3
4
5
6
private Optional() {
   this.value = null;
}
private Optional(T value) {
   this.value = Objects.requireNonNull(value);
}

  。

无参构造方法用来初始化EMPTY。有参构造方法用来初始化非null对象.

因为构造方法被修饰为私有的,Optional想要实例化对象只能通过类方法调用。Optional提供三个类方法.

empty:返回value为null的Optional对象 of:返回value非null的Optional对象 ofNullable:value的值根据参数是否为null返回对应的Optional对象 。

?
1
2
3
4
5
6
7
8
9
10
11
12
public static< T > Optional< T > empty() {
   Optional< T > t = (Optional< T >) EMPTY;
   return t;
}
 
public static < T > Optional< T > of(T value) {
   return new Optional<>(value);
}
 
public static < T > Optional< T > ofNullable(T value) {
   return value == null ? empty() : of(value);
}

  。

实例方法介绍 。

  。

方法 参数类型 返回类型 说明
get T value为null抛出NoSuchElementException异常
isPresent boolean value为null则返回false
ifPresent Consumer<? super T> void 如果Optional实例有值则为其调用consumer,否则不做处理
filter Predicate<? super T> Optional<T> 如果值存在并且满足提供的谓词,就返回包括该值的Optional对象;否则返回一个空的Optional对象
map Function<? super T, ? extends U> Optional<U> 如果值存在,就对该值执行提供的mapping函数调用,返回Optional<U>对象
flatMap Function<? super T, Optional<U>> Optional<U> 如果值存在,就对该值执行提供的mapping函数调用,返回非null Optional对象
orElse T T 如果有值则将其返回,否则返回一个默认值
orElseGet Supplier<? extends T> T 如果有值则将其返回,否则返回一个由指定的Supplier接口生成的值
orElseThrow Supplier<? extends X> <X extends Throwable> 如果有值则将其返回,否则抛出一个由指定的Supplier接口生成的异常

  。

最后此篇关于JAVA Optional类用法分享的文章就讲到这里了,如果你想了解更多关于JAVA Optional类用法分享的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com