Guava之Optional

Java中null的使用会有如下副作用:
1.无法表达具体的业务含义,语义含糊不清;
2.增加了NullPointException的发生,因为不知道什么地方就返回了一个null;
3.null和空容易混为一谈;
4.需要非null判断,弱可读性、代码不够优雅。
返回一个null值绝对不是一个好的选择,所以,对于null关键字尽量避免使用。

而Google的Guava给出了更好的解决方法,Optional工具类是一个更好的选择,如下是Optional提供创建其实例的方法:

Optional.of(T)根据给定的引用创建Optional实例,若T为null,则抛出NullPointerException
Optional.absent()创建一个不包含任何引用的Optional实例
Optional.fromNullable(T)根据给定的引用创建Optional实例,若T为null,则创建一个Optional.absent

Optional实例提供了如下常用方法:
boolean isPresent()如果Optional实例持有者包含一个非null的实例,则返回True,否则返回false
T get()如果Optional实例持有者包含一个非null的实例,则返回非null的实例,否则抛IllegalStateException
T or(T defaultValue)如果Optional实例持有者包含一个非null的实例,则返回非null的实例,否则返回这个defaultValue
T orNull()如果Optional实例持有者包含一个非null的实例,则返回非null的实例,否则返回null
Set<T> asSet()如果Optional实例持有者包含一个非null的实例,则返回一个只有一个元素的不可变Set,否则返回一个空Set

使用Optional包装引用的优点:
1.isPresent方法会更加清晰、明确的指明业务上的含义;
2.isPresent方法可以判断实例是否为null,防止NullPointException发生;
3.容易和空区分开;
4.代码的可读性增强,而且返回值可以设置默认值等。

只要引入Guava的jar包你就可以很容易的使用,你值得尝试!


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值