Java8中orElse orElseGet orElseThrow的使用举例
作者:chushiyunen
这篇文章主要介绍了Java8中orElse orElseGet orElseThrow的使用举例,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
这3个都是用来处理null的情况:
orElse 用的是括号内的对象
orElseGet 用的是Supplier接口返回的对象。 supplier接口就一个get方法。
无入参,出参要和Optional的对象同类型。
orElseThrow 用的是Supplier接口返回的对象,这个对象必须要实现Throwable。 supplier接口就一个get方法。 无入参,出参要实现Throwable.
orElse 代码
//orElse 有,就用自身值。 为null,就用orElse后面的值。 //有正品用正品,没正品用替代品 System.out.println(Optional.ofNullable("正品").orElse("替代品")); // orElse System.out.println(Optional.ofNullable(null).orElse("替代品"));
orElseGet代码
// orElseGet 它可以传入一个supplier接口,里面可以花样实现逻辑 System.out.println(Optional.ofNullable("宝马").orElseGet(()->"走路")); // 有宝马就不用走路 System.out.println(Optional.ofNullable(null).orElseGet(()->"自行车")); // 没宝马,可以骑自行车 System.out.println(Optional.ofNullable(null).orElseGet(()->"电动车")); // 没宝马,也可以骑电动车
有人会说orElse和orElseGet没看出有什么区别啊。
区别是orElseGet可以传入一个接口,来定制逻辑。
orElseThrow代码
// 有钱就没异常 try { System.out.println(Optional.ofNullable("钱").orElseThrow(()->new Exception())); // 有钱不会抛异常 } catch (Throwable throwable) { throwable.printStackTrace(); } // 没钱就会抛异常 try { System.out.println(Optional.ofNullable(null).orElseThrow(()->new Exception())); // 没钱抛异常 } catch (Throwable throwable) { throwable.printStackTrace(); }
到此这篇关于Java8中orElse orElseGet orElseThrow的使用举例的文章就介绍到这了,更多相关java orElse orElseGet orElseThrow使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!