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

相關文章
相關標籤/搜索