您的位置:首页 > 编程语言 > Java开发

guava——基本工具

2017-03-28 16:53 411 查看

1.1使用和避免null

null值可能会产生更多的问题,因此使用快速失败操作拒绝null会有帮助。

guava用Optional< T> 表示可能null的T类型的引用.Optional实例可能包含非null的引用,也可能上面都不包括,这种情况用缺失来表示, OPtional从不会包含null值。

创建Optional实例(以下都是静态方法):

Optional.of(T) 创建指定引用的Optional实例,若引用为null则快速失败

Optional.absent() 创建引用缺失的Optional实例

Optional.fromNullable(T) 创建指定引用的Optional实例,若引用为null则表示缺失

用Optional实例查询引用(以下都是非静态方法):

boolean isPresent() 如果Optional包含非null的引用(引用存在),返回true

T get() 返回Optional所包含的引用,若引用缺失,则抛出java.lang.IllegalStateException

T or(T) 返回Optional所包含的引用,若引用缺失,返回指定的值

T orNull() 返回Optional所包含的引用,若引用缺失,返回null

Set asSet() 返回Optional所包含引用的单例不可变集,如果引用存在,返回一个只有单一元素的集合,如果引用缺失,返回一个空集合。

1.2前置条件

让方法调用前置条件判断更简单!

Preconditions类中提供了若干前置条件判断方法,每个方法有三个变种:

没有额外参数:抛出的异常中没有错误消息;

有一个Object对象作为额外参数:抛出的异常使用 Object.toString() 作为错误消息;

有一个String对象作为额外参数,并且有一组任意数量的附加Object对象:这个变种处理异常消息的方式有点类似printf,但考虑GWT的兼容性和效率,只支持%s指示符。

方法声明(不包括额外参数)描述检查失败时抛出的异常
checkArgument(boolean)检查boolean是否为true,用来检查传递给方法的参数。IllegalArgumentException
checkNotNull(T)检查value是否为null,该方法直接返回value,因此可以内嵌使用checkNotNull。NullPointerException
checkState(boolean)用来检查对象的某些状态。IllegalStateException
checkElementIndex(int index, int size)检查index作为索引值对某个列表、字符串或数组是否有效。index>=0 && index< sizeIndexOutOfBoundsException
checkPositionIndex(int index, int size)检查index作为位置值对某个列表、字符串或数组是否有效。index>=0 && index<=sizeIndexOutOfBoundsException
checkPositionIndexes(int start, int end, int size)检查[start, end]表示的位置范围对某个列表、字符串或数组是否有效IndexOutOfBoundsException
1.3常见Object方法

toString

Objects.toStringHelper可以轻松编写有用的toString方法

// Returns "ClassName{x=1}"
Objects.toStringHelper(this).add("x", 1).toString();
// Returns "MyObject{x=1}"
Objects.toStringHelper("MyObject").add("x", 1).toString();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  实例 class guava java