1.
使用Guava编写优雅代码
google guava wiki
2. Optional
Guava学习笔记:Optional优雅的使用null
使用Optional避免NullPointerException
Guava-Optional可空类型
Guava API学习之Optional 判断对象是否为null
Google Guava之Optional
Java 8 提供了
java.util.Optional<T>
类。
public void sayHello(String name) {
name = Optional.fromNullable(name).or("游客");
System.out.println("Hello, " + name);
}
Optional<T>
的最常用价值在于,例如,假设一个方法返回某一个数据类型,调用这个方法的代码来根据这个方法的返回值来做下一步的动作,若该方法可以返回一个null值表示成功,或者表示失败,在这里看来都是意义含糊的,所以使用Optional<T>
作为返回值,则后续代码可以通过isPresent()来判断是否返回了期望的值(原本期望返回null或者返回不为null,其意义不清晰),并且可以使用get()来获得实际的返回值。
Optional除了给null值命名所带来的代码可阅读性的提高,最大的好处莫过于Optional是傻瓜式的。Optional对象的使用强迫你去积极的思考这样一种情况,如果你想让你的程序返回null值,这null值代表的含义是什么,因为你想要取得返回值,必然从Optional对象内部去获得,所以你必然会这么去思考