本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
什么是Guava-Libraries?
Guava-Libraries是google对java的一个扩展,主要涵盖集合、缓存、并发、I/O、反射等等。
它本来是Google内部所使用的一个类库,后来整理开源出来了。这套库的设计引入了很多新的理念,研究一下可能会使你对Java这门语言有新的认识和看法。
地址:http://code.google.com/p/guava-libraries/
这篇短文主要是关于Guava-Libraries基础工具,内容是我参考官方wiki和自己的使用体验结合而成。
null的使用
null在java中是一个很特殊的东西。它可以标识一个不确定的对象,比如
同时在很多个集合中它代表key不存在,也可以代表值为null。
null使用需要给外的小心,稍不注意就会出现很多问题。当然更多的时候只是单纯的觉得null不够优雅而已。
Guava为我们提供了一个Optional的抽象类来解决这个问题。用类Present和Absent代表值存在和不存在。
以下是一个例子:
第一种是值存在的,第二种是值不存在的。执行效果如下:
这里说明一下isPresent()方法是判断是否有值的。or方法是非null返回Optional的值,否则返回传入值。
orNull()方法是非null返回Optional的值,否则返回null。
我个人觉得or方法比较常用就是了。
条件判断
Guava还封装了一些条件检查方法,比如判断真假、判断是否为空、判断index是否合法等等。如果判断通过,返回值本身,否则抛出错误。
每种方法又对应了三种重载:
1.没有错误信息
2.有直接的错误信息
3.带模板的错误信息
来个小例子:
效果如下:
对象的常用方法
简单实现了Object的一些方法而已,比如toString、hashCode。
我个人觉得equal这块用户不大,主要是toString和Compare。
特别是ComparisonChain的使用,有种链式编程的感觉。
例子:
效果:
写在最后
Guava是google封装以后的东西,肯定经过了很多实践和测试。但是有些东西用着还是比较奇怪,感觉封装以后更混乱了。大家挑选着合适的用吧。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯