您的位置:首页 > 移动开发 > Objective-C

[Guava学习笔记]Basic Utilities: Null, 前置条件, Object方法, 排序, 异常

2014-07-14 13:32 806 查看
我的技术博客经常被流氓网站恶意爬取转载。请移步原文: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...)

isOrdered(Iterable) sortedCopy(Iterable)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: