2019-08-25 Optional

findAny()

返回处理最快的一个,xxList 如果确定查出来就一个

xxList.stream.map(Student::getId()).findAny();

大概就是这样  这样返回的是一个Optional的对象  比如Optional<Integer> id = 上面的

optional的好处就是 

解决了npe的一点点问题查不出来 也不影响好像

也就是说就算返回是空 这个optional也能接得住 Optional允许我们返回一个null对象

常用的方法 isPresent() get()检查其包含的对象时候为空或者不是

这个Optional对象 就是中间商 让它作为中间的人 用它接收 用它作为入参传入 可以免去 很多人工的if判断

ifPresent()

返回的是void 就是对嘟点之前的Optional对象进行判断 如果有值 就进入到里面进行兰布达计算 如果没有值就跳过

没有值会抛出nosuchelementException

List list =new ArrayList<>();

list.add("a");

list.add("b");

list.add("c");

Optional l = list.stream().filter(x->x.startsWith("d")).findAny();

try {

System.out.println(l.get());

}catch (NoSuchElementException e ){

System.out.println("没有找到");

}

传入的是a就会打印a ; 如果啊传入的是d 就会打印没有找到


打印AADFD

orElse

如果optional是一个空值 需要返回一个默认的值的 时候  这是可以用orElse()方法 

当optional值不存在时,调用orElse()返回orElse()的参数,如果optional的值存在时返回optional的值

orElseGet

optional为空时,里面可以调用 函数  然后返回 自己需要的值

当optional值不存在时,调用orElseGet()中接口调用的返回值,如果optional的值存在时返回optional的值

StringnullValue =null;

Stringoptional = Optional.ofNullable(nullValue).orElse("Su"); 

 System.out.println(optional); //su

StringoptionalGet = Optional.ofNullable(nullValue).orElseGet(() ->"Xiao"); 

 System.out.println(optionalGet);  //xiao

StringnonNullOptional = Optional.ofNullable("Susan").orElse("Su"); 

 System.out.println(nonNullOptional);// susan

StringnonNullOptionalGet = Optional.ofNullable("Molly").orElseGet(() ->"Xiao"); System.out.println(nonNullOptionalGet);//molly


orElseThrow

决定自己要抛出 什么样的异常

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容