瓜娃(Guava)是一款基于开源JAVA内容的库,也是Google很多项目在使用的扩展库。主要为了方便编码,并有效减少编码错误。有着多种供用于集合、缓存、并发、常见注解、字符串处理、I/O与验证的方法。下面介绍几种简单的功能。
Optional类
com.google.common.base.Optional 用于处理包含非空对象的不可变对象,也就是在一些无法赋值,但对象还是为null的时候进行处理,也可以说是用来表示null,包含了多种方法来处理引用与不可用,而不止于仅仅检查null值。
方法 | 功能 |
---|---|
static <T> Optional<T> of(T reference) | 返回一个包含非空引用的Optional实例 |
abstract boolean isPresent() | 如果这个对象是空的,返回null |
abstract T or(T defaultValue) | 返回所包含的实例(如果存在);否则为默认值 |
abstract T orNull() | 返回所包含的实例(如果存在);否则返回null |
Objects类
提供适用于所有对象的方法,类似于equals、hashcode、toString等辅助函数的升级版。但是大部分方法已经被MoreObjects取代。
方法 | 功能 |
---|---|
static int hashCode(Onject... Objects) | 生成多个值的哈希码 |
MoreObjects类
通过对于Objects的拓展,淘汰了它的部分方法。
方法 | 功能 |
---|---|
static MoreObjects.ToStringHelper toStringHelper(Object self) | 返回一个内部类ToStringHelper的实例,通过调用这个实例的方法(add())去特殊化toString |
exmple:
MoreObjects.toStringHelper(this)
.add("name",name.subString(0,10))
.add("sex",sex)
.add("age",Integer.valueOf(age))
.toString();
CharMatcher类
提供了各种方法来处理char类型数据的值
常用的几个常量:
static CharMatcher ANY //匹配任意字符
static CharMatcher ASCII //是否为ASCII码
static CharMatcher BREAK_WHITESPACE //消除空白
方法 | 功能 |
---|---|
String removeFrom(CharSequence sequence) | 返回字符串包含的字符序列的所有非匹配字符 |
boolean matchesAnyOf(CharSequence sequence) | 如果字符串包含至少一个匹配字符,返回true |
实际情况下,通过CharMatcher自带的实例对象去调用CharMatcher的方法,与参数中的字符串进行一系列操作。
boolean result = CharMatcher.BREAK_WHITESPACE.matchesAnyOf("bai hh");//true
String name = CharMatcher.BREAK_WHITESPACE.matchesAnyOf("bai h y");//baihy