我的技术博客经常被流氓网站恶意爬取转载。请移步原文:http://www.cnblogs.com/hamhog/p/3842433.html,享受整齐的排版、有效的链接、正确的代码缩进、更好的阅读体验。
Null
Guava用Optional表示可能为null的T类型引用。
创建:Optional.of(T)不接受null Optional.fromNullable(T)接受null Optional.absent()
查询:isPresent() get() or(T)如果为null则为T orNull()
其他:Objects.firstNonNull(T, T)用于给null指定默认值,如果两个都是null会抛NullPointerException
emptyToNull(String),nullToEmpty(String)
前置条件
静态import:
import static com.google.common.base.Preconditions.checkNotNull;
用法:
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) checkPositionIndexes(int start, int end, int size)
可内联使用:this.field = checkNotNull(field)
object方法
Objects.equals(a,b)可null的equals Objects.hash(Object...)
toString():
// Returns "ClassName{x=1}" Objects.toStringHelper(this).add("x", 1).toString(); // Returns "MyObject{x=1}" Objects.toStringHelper("MyObject").add("x", 1).toString();
compare():
public int compareTo(Foo that) { return ComparisonChain.start() .compare(this.aString, that.aString) .compare(this.anInt, that.anInt) .compare(this.anEnum, that.anEnum, Ordering.natural().nullsLast()) .result(); }
排序
Ordering:Comparator的实现
构造:natural()自然序 usingToString()字典序 from(Comparator)
链式调用:reverse()逆序 nullsFirst() nullsLast() lexicographical() onResultOf(Function)
Ordering<Foo> ordering = Ordering.natural().nullsFirst().onResultOf(new Function<Foo, String>() { public String apply(Foo foo) { return foo.sortedBy; } });
集合和元素:greatestOf(Iterable iterable, int k) min(Iterable) min(E, E, E, E...)