Optional类

public final class Optional<T>  构造函数私有化;不能new 实例;不能被继承;
 
Optional 类主要解决的问题是空指针异常(NullPointerException)

本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。

成员变量:

其中:

 EMPTY:是方法的公共实例,如empty()方法;  

value:为空,指示当前不存在值

一个容器对象可能或不能包含非空对象;

    

值存在,isPresent()返回TRUE;  get()返回值;

调用isPresent方法,判断user是否为空;get()方法从包装类里获取原有对象,地址不变;

附加方法依赖于提供的值存在与否;如: orElse() 如不存在返回默认值;ifPresent() :值存在就执行一段代码;源码如下:

 
public T orElse(T other) {
    return value != null ? value : other;
}
public T orElseGet(Supplier<? extends T> other) {
 return value != null ? value : other.get();
}


方法 orElse 当调用对象不为空时,返回本身,否则返回othis;

 
ofElseGet():方法 当调用对象不为空,返回被包装的对象,否则执行方法返回的对象;
public void ifPresent(Consumer<? super T> consumer) {
    if (value != null)
        consumer.accept(value);
}
方法 ifPresent 当user1存在,就执行consymer对象;
 
方法:of(t value) 若value为null,报NullPointerException; 
 
 
例:
user 不为null,则底层调用of方法,返回user的包装;
方法 filter() 如果存在一个值,并且该值与给定 preicate匹配,返回描述值的Optional,否则返回 empty Optional}. 

map 方法 如果 mapper值存在;则将提供的映射函数应用到它,如果结果不为 NULL,则返回{option描述*结果。否则返回empty。
map()方法用于通过函数获取存在对象中的值;
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值