guava学习笔记 - 基本工具_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > guava学习笔记 - 基本工具

guava学习笔记 - 基本工具

 2013/9/26 18:51:43  leadtoit  程序员俱乐部  我要评论(0)
  • 摘要:最近在学习guava,写这篇文章主要是为了巩固下学习的东西。资料地址:https://code.google.com/p/guava-libraries/wiki/PreconditionsExplained(1)Optional标识可以为空的对象。static<T>Optional<T>absent()返回事实上的空对象。static<T>Optional<T>of(Treference)构造一个Optional对象。注意T不能为null
  • 标签:笔记 学习 工具 学习笔记

最近在学习guava,写这篇文章主要是为了巩固下学习的东西。

资料地址:https://code.google.com/p/guava-libraries/wiki/PreconditionsExplained

?

?(1)Optional ?标识可以为空的对象。

?

? ?static <T> Optional<T> absent() 返回事实上的空对象。

? ?static <T> Optional<T> of(T reference) 构造一个Optional对象。注意T不能为null,否则将抛异常

? ?static <T> Iterable<T> presentInstances(Iterable<? extends Optional<? extends T>> optionals) 从一个Iterable构造另一个Iterable,除去空对象(isPresent()=true)

?

? ?abstract boolean isPresent() 返回是否为空。

? ?abstract T get() 返回存储的对象。

? ?abstract Set<T> asSet() 返回一个集合,仅包含存储的对象一个元素,如果为空的话就是空集合。

? ?abstract Optional<T>or(Optional<? extends T> secondChoice)返回对象,如果为空就返回secondChoice。

? ?abstract T or(Supplier<? extends T> supplier) 返回对象,如果为空就返回supplier.get()返回的对象;Supplier是个很简单的接口,只有get()一个方法;这样的话各种实现该接口的对象都可以提供Optional的默认值。

? ?abstract T or(T defaultValue)返回对象,为空则返回defaultValue

? ?abstract T orNull() 返回对象,为空则返回null

? ?abstract <V> Optional<V> transform(Function<? super T,V> function) 将Optional对象转化为V对象

? ?

? ?equals,hashcode,tostring就不说了。

?

?

??

?(2)Preconditions 断言, 这个用的比较多。一般用于校验方法传入的参数是否满足心理预期。

?

? checkArgument(i >= 0, "Argument was %s but expected nonnegative", i);

? checkArgument(i < j, "Expected i < j, but %s > %s", i, j);

?

? 主要的方法有:

? checkArgument(boolean)

? checkNotNull(T)

? checkState(boolean)

? checkElementIndex(int index, int size)

? checkPositionIndex(int index, int size)

? checkPositionIndexes(int start, int end, int size)

?

?

? (3)Ordering 对集合进行排序,是guava对comparators的优化,实现了接口Comparator<T>,支持标准的链式操作。

static Ordering<Object>allEqual() ?返回的排序策略认为所有对象都是相等的,包括null。

Ordering.allEqual().nullsLast().sortedCopy(asList(t, null, e, s, null, t, null)) 将把null往后放,其他的维持原顺序。

?

static Ordering<Object>arbitrary() 跟Comparator类似,这种排序方式下,看compare方法返回的结果。

?

static <T> Ordering<T>compound(Iterable<? extends Comparator<? super T>> comparators)

static <T> Ordering<T>explicit(List<T> valuesInOrder)

static <T> Ordering<T>explicit(T leastValue, T... remainingValuesInOrder)

static <T> Ordering<T>from(Comparator<T> comparator)

static <C extends Comparable> Ordering<C>natural()

static Ordering<Object>usingToString()

发表评论
用户名: 匿名