码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-07-14 16:02:37      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   使用   

我的技术博客经常被流氓网站恶意爬取转载。请移步原文: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)

前置条件

用法:

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) 

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

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

标签:style   blog   http   java   color   使用   

原文地址:http://www.cnblogs.com/hamhog/p/3842433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!