Guava读作“瓜娃”,番石榴的意思。它是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供包括用于集合,缓存,反射,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。
使用Guava可以使自己的代码可读性增加、执行效率增加,最重要的是简单好用,让很多代码简洁化,在编写代码的过程中,更专注于业务和性能。
首先我们在项目中若想使用Guava,需要导入包,其中Maven的依赖如下
Optional作为其中较为多用的工具类,其主要用途是来处理对象的Null值,在日常开发中我们经常会用到参数校验的工作。其部分使用如下。
Preconditions作为一个方法参数校验的工具类,在日常开发过程中用处也十分广泛,主要用于在调用方法之前的校验环节,多用于开发阶段的自我测试。
如上所示,getPersonByPrecondition作为主体方法,可以在进入业务逻辑前对参数进行校验并抛出异常。
Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例。Ordering只是需要依赖于一个比较器(例如,Collections.max)的方法,并使其可作为实例方法。另外,Ordering提供了链式方法调用和加强现有的比较器。示例如下: