Guava—避免使用null

null问题

null的主要问题是语义含糊,例如:map.get(key)返回null时,你没法判断是map==null仍是key==null。

如何避免

因为这个缘由对于null值建议采起快速失败。同时,在程序中咱们可使用Optional,使用Optional除了赋予null语义,增长了可读性,最大的优势在于它是一种傻瓜式的防御。Optional迫使你积极思考引用缺失的状况,由于你必须显式地从Optional获取引用。

Optional类经常使用方法

| 方法                     | 做用                                               |
| Optional.of(T)           | 建立指定引用的Optional实例,若引用为null则快速失败 |
| Optional.absent()        | 建立引用缺失的Optional实例                         |
| Optional.fromNullable(T) | 建立指定引用的Optional实例,若引用为null则表示缺失 |
| boolean isPresent()      | 若是Optional包含非null的引用(引用存在),返回true |
| T get()                  | 返回Optional所包含的引用,若引用缺失,抛异常       |
| T or(T)                  | 返回Optional所包含的引用,若引用缺失,返回指定的值 |
| T orNull()               | 返回Optional所包含的引用,若引用缺失,返回null     |
| Set<T> asSet()           |                                                    |

 建议:在程序中将null和empty区分开, 以表示不一样的含义。html

API地址:http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/index.html?com/google/common/base/Strings.htmljava

maven依赖:git

<dependency>maven

        <groupId>com.google.guava</groupId>google

        <artifactId>guava</artifactId>spa

        <version>19.0</version>code

</dependency>htm

相关文章
相关标签/搜索