Guava之Optional
来源:互联网 发布:linux安装eclipse jdk 编辑:程序博客网 时间:2024/06/05 16:15
Java中null的使用会有如下副作用:
1.无法表达具体的业务含义,语义含糊不清;
2.增加了NullPointException的发生,因为不知道什么地方就返回了一个null;
3.null和空容易混为一谈;
4.需要非null判断,弱可读性、代码不够优雅。
返回一个null值绝对不是一个好的选择,所以,对于null关键字尽量避免使用。
而Google的Guava给出了更好的解决方法,Optional工具类是一个更好的选择,如下是Optional提供创建其实例的方法:
Optional.of(T)根据给定的引用创建Optional实例,若T为null,则抛出NullPointerExceptionOptional.absent()创建一个不包含任何引用的Optional实例Optional.fromNullable(T)根据给定的引用创建Optional实例,若T为null,则创建一个Optional.absent
Optional实例提供了如下常用方法:
boolean isPresent()如果Optional实例持有者包含一个非null的实例,则返回True,否则返回falseT get()如果Optional实例持有者包含一个非null的实例,则返回非null的实例,否则抛IllegalStateExceptionT or(T defaultValue)如果Optional实例持有者包含一个非null的实例,则返回非null的实例,否则返回这个defaultValueT orNull()如果Optional实例持有者包含一个非null的实例,则返回非null的实例,否则返回nullSet<T> asSet()如果Optional实例持有者包含一个非null的实例,则返回一个只有一个元素的不可变Set,否则返回一个空Set
使用Optional包装引用的优点:
1.isPresent方法会更加清晰、明确的指明业务上的含义;
2.isPresent方法可以判断实例是否为null,防止NullPointException发生;
3.容易和空区分开;
4.代码的可读性增强,而且返回值可以设置默认值等。
只要引入Guava的jar包你就可以很容易的使用,你值得尝试!
新浪微博:http://weibo.com/tianrui1990
1 0
- Guava之optional
- Guava之Optional
- 《Guava之Optional》
- guava使用系列之Optional
- guava Optional
- guava Optional
- Guava —— Optional
- guava Optional api使用
- Guava中的Optional实现
- Guava Optional 和 Java 8 optional
- guava学习笔记(2)--Optional
- Guava-Optional可空类型
- 【Java8】Guava——Optional
- Google Guava 使用Optional<T>
- Guava中的Optional来表达null
- [Guava源码日报](5)Optional分析
- Guava 避免null-Optional的使用方法
- Guava Optional类的使用【Guava学习笔记】
- http://mp.weixin.qq.com/mp/homepage微信公众平台封面制作
- 枚举进程句柄File,Section,Mutant,Timer关闭Mutex句柄实现游戏多开
- Java 内部类访问规则
- CocoaPods 出现 OTHER_LDFLAGS 错误的解决方法
- 解读机器学习基础概念:VC维的来龙去脉(转)
- Guava之Optional
- JSTL演示如何使用
- SurfaceView-View-GLSurfaceView
- uva 10305 ordering tasks题解
- 专题三 · 1012
- 剑指Offer--049-把字符串转换成整数
- StandardEngine[Catalina].StandardHost[localhost]
- CSS3 input[type=file] 样式美化,input上传按钮美化
- Java设计模式(四):原型模式Prototype