guava是google开发的一套工具jar库。这个库可以方便编码,减少编码错误,让你的代码变得更加优雅。
Optional
com.google.common.base.Optional
Guava设计Optional来解决null问题,Optional<T>表示可能为null的T类型的引用。Optional实例要么包含一个非null的引用,要么什么都不包含(absent),从不会包含null值引用。
Optional除了赋予null意义外,增加可读性,还在于它是一种傻瓜式的防护。Optional 迫使你积极思考引用确实的情况,因为你必须显式地从Optional 获取引用。
S.N. | 方法及说明 |
1 | static <T> Optional<T> absent() 创建引用缺失的Optional实例。 |
4 | static <T> Optional<T> fromNullable(T nullableReference) 创建指定引用的Optional实例,若引用为null则表示缺失。 |
5 | abstract T get() 若引用缺失,则抛出IllegalStateException。 |
7 | abstract boolean isPresent() |
8 | static <T> Optional<T> of(T reference) 创建指定引用的Optional实例,对null值抛出NullPointException。建议直接传递常量参数。 |
9 | abstract Optional<T> or(Optional<? extends T> secondChoice) |
11 | abstract T or(T defaultValue) |
12 | abstract T orNull() |
Preconditions
Precondistions是一种简单的封装,让你的代码中不会再有大段大段的if-else进行判断。
简单但是有用。
S.N. | 方法及说明 |
---|---|
1 | static void checkArgument(boolean expression) |
2 | static void checkArgument(boolean expression, Object errorMessage) |
3 | static void checkArgument(boolean expression, String errorMessageTemplate, Object... errorMessageArgs) |
4 | static int checkElementIndex(int index, int size) |
5 | static int checkElementIndex(int index, int size, String desc) |
6 | static <T> T checkNotNull(T reference) |
7 | static <T> T checkNotNull(T reference, Object errorMessage) |
8 | static <T> T checkNotNull(T reference, String errorMessageTemplate, Object... errorMessageArgs) |
9 | static int checkPositionIndex(int index, int size) |
10 | static int checkPositionIndex(int index, int size, String desc) |
11 | static void checkPositionIndexes(int start, int end, int size) |
12 | static void checkState(boolean expression) |
13 | static void checkState(boolean expression, Object errorMessage) |
14 | static void checkState(boolean expression, String errorMessageTemplate, Object... errorMessageArgs) |