##guava basic 基本工具
避免null optional
如果是jdk1.8以上直接使用optional 1.8以下需要使用guava basic工具包
前置检查 Preconditions
方法声明(不包括额外参数) | 描述 | 检查失败时抛出的异常 |
---|---|---|
checkArgument(boolean) | 检查boolean是否为true,用来检查传递给方法的参数。 | IllegalArgumentException |
checkNotNull(T) | 检查value是否为null,该方法直接返回value,因此可以内嵌使用checkNotNull。 | NullPointerException |
checkState(boolean) | 用来检查对象的某些状态。 | IllegalStateException |
checkElementIndex(int index, int size) | 检查index作为索引值对某个列表、字符串或数组是否有效。index>=0 && index<size * | IndexOutOfBoundsException |
checkPositionIndex(int index, int size) | 检查index作为位置值对某个列表、字符串或数组是否有效。index>=0 && index<=size * | IndexOutOfBoundsException |
checkPositionIndexes(int start, int end, int size) | 检查[start, end]表示的位置范围对某个列表、字符串或数组是否有效* | IndexOutOfBoundsException |
object方法 Objects
jdk1.7 后提供了相应的方法 可以不用guava
提供比较链 ComparisonChain
排序 Ordering
排序器
方法 | 描述 |
---|---|
natural() | 对可排序类型做自然排序,如数字按大小,日期按先后排序 |
usingToString() | 按对象的字符串形式做字典排序[lexicographical ordering] |
from(Comparator) | 把给定的Comparator转化为排序器 |
链式调用
方法 | 描述 |
---|---|
reverse() | 获取语义相反的排序器 |
nullsFirst() | 使用当前排序器,但额外把null值排到最前面。 |
nullsLast() | 使用当前排序器,但额外把null值排到最后面。 |
compound(Comparator) | 合成另一个比较器,以处理当前排序器中的相等情况。 |
lexicographical() | 基于处理类型T的排序器,返回该类型的可迭代对象Iterable |
onResultOf(Function) | 对集合中元素调用Function,再按返回值用当前排序器排序。 |
排序器
方法 | 描述 |
---|---|
greatestOf(Iterable iterable, int k) | 获取可迭代对象中最大的k个元素。 |
isOrdered(Iterable) | 判断可迭代对象是否已按排序器排序:允许有排序值相等的元素。 |
sortedCopy(Iterable) | 判断可迭代对象是否已严格按排序器排序:不允许排序值相等的元素。 |
min(E, E) | 返回两个参数中最小的那个。如果相等,则返回第一个参数。 |
min(E, E, E, E…) | 返回多个参数中最小的那个。如果有超过一个参数都最小,则返回第一个最小的参数。 |
min(Iterable) | 返回迭代器中最小的元素。如果可迭代对象中没有元素,则抛出NoSuchElementException。 |