简介

  Guava,中文是石榴的意思,Guava项目,是基于java的Google的开源的工具类库,包含了许多被Google的java项目广泛依赖的核心库,

例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。

为什么项目开发中我们要选择Guava,借用网友的回答:
•瓜娃是java API蛋糕上的冰激凌(精华)
•高效设计良好的API
•被google的开发者设计,实现和使用
•遵循高效的java这本书的好的语法实践
•使代码更刻度,简洁,简单
•使用java 1.5的特性
•流行的API,动态的开发
•它提供了大量相关的应用类,集合,多线程,比较,字符串,输入输出,缓存,网络,原生类型,数学,反射等等
•百分百的单元测试,被很多的项目使用,帮助开发者专注业务逻辑而不是写java应用类
•节省时间,资源,提高生产力
•我的目的是为基本的java特征提供开源代码的支持,而不是自己再写一个
•ApacheCommon库Apache是一个很好的成熟的库,但是不支持泛型,Apache对早起的java版本很有用-1.5之前的
•java7,java8 最新的java支持一些guava的API

在项目开发中适当的场景灵活运用Guava,可使我们省去复杂的数据处理,代码简介易用,不易出错,

代码可读性健壮性增强,让我们有更多时间专注业务的处理,总之就是使我们的代码更加的优雅。

Maven依赖

 <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>

字符串检查工具

 /**
* Guava Strings工具类的使用,null和empty的判断与转化
* @author chenleixing
*/
public void testStrings(){
Strings.isNullOrEmpty("");//返回true
Strings.nullToEmpty(null);//""
Strings.nullToEmpty("chen");//返回"chen"
Strings.emptyToNull("");//返回null
Strings.emptyToNull("chen");//返回"chen" Strings.commonPrefix("aaab", "aac");//"aa"否则返回""
Strings.commonSuffix("aaac", "aac");//"aac"否则返回""
}

NULL值检查

先决条件检查

 //判断参数1的布尔值,如果为假抛出第二个参数的异常信息IllegalArgumentException
Preconditions.checkArgument(i>0,"Argument was %s but expected nonnegative");

判断对象是否为null

 //判断参数1的布尔值,如果为null 抛出第二个参数的异常信息NullPointerException
Preconditions.checkNotNull(null,"该对象为Null");

操作集合

之前

     Map<String, Map<Long, List<String>>> map = new HashMap<String, Map<Long,List<String>>>();  

用Guava

 Map<String, Map<Long, List<String>>> map = Maps.newHashMap();

 之前

 List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");

现在

 List<String> list =Lists.newArrayList("a","b","c","d");

参考:

Guava 官方教程(中文版)http://ifeve.com/google-guava/

Guava常用方法的更多相关文章

  1. Guava的常用方法示例

    Guava Maven Dependency <dependency> <groupId>com.google.guava</groupId> <artifa ...

  2. java代码之美(3)---guava 复写Object常用方法

    guava 复写Object常用方法 Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方 ...

  3. java代码(3)----guava复写Object常用方法

    guava复写Object常用方法 Guava是一个Google的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,字符串处理,I/O和验证的实用方法, 这些高质量的 ...

  4. Guava学习笔记(3):复写的Object常用方法

    转自:http://www.cnblogs.com/peida/p/Guava_Objects.html 在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals ...

  5. Guava学习笔记:复写的Object常用方法

    在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法.每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这 ...

  6. Guava学习笔记(一)概览

    Guava是谷歌开源的一套Java开发类库,以简洁的编程风格著称,提供了很多实用的工具类, 在之前的工作中应用过Collections API和Guava提供的Cache,不过对Guava没有一个系统 ...

  7. guava学习--Objects

    转载:https://my.oschina.net/realfighter/blog/349821 Java中的Object类是所有Java类的超类(也就是祖先),所有对象都实现Object类中的方法 ...

  8. Guava学习笔记:Google Guava 类库简介

    http://www.cnblogs.com/peida/tag/Guava/ Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, cachin ...

  9. Guava学习笔记目录

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...

随机推荐

  1. Ubuntu16.04安装搜狗输入法后有黑边问题的解决方法

    apt-get install compton compton -b

  2. 经典案例之MouseJack

    引言:在昨天的文章<无线键鼠监听与劫持>中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,<MouseJack>:MouseJack能利用无线鼠标和键盘存在的一些问 ...

  3. Microsoft+R:Microsoft R Open (MRO)安装和多核运作

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本文转载于公众号大猫的R语言课堂,公众号作者使 ...

  4. 如何使用DirectDraw直接显示RGB、YUV视频数据(播放yuv)

    #include "draw.h"void CTest100Dlg::OnButton1() { // TODO: Add your control notification ha ...

  5. 【php】windows安装PHP5.5+Apache2.4

    php5.5和apache2.4的整合 看到php的版本升级了,就想试下新的特性 一.准备下载的文件 apache2.4.9 http://www.apachelounge.com/download/

  6. windows驱动程序wdf--KMDF获取应用程序数据缓冲区地址

    有3种常用方式:METHOD_BUFFERED  METHOD_IN_DIRECT  METHOD_OUT_DIRECT   还有METHOD_NEITHER,<windows设备驱动WDF开发 ...

  7. Django学习-2-初识settings文件

    配置文件文档 https://docs.djangoproject.com/en/2.0/ref/    1.添加APP的设置 INSTALLED_APPS = [ 'django.contrib.a ...

  8. HihoCoder - 1139

    在上一回和上上回里我们知道Nettle在玩<艦これ>,Nettle在整理好舰队之后终于准备出海捞船和敌军交战了.在这个游戏里面,海域是N个战略点(编号1..N)组成,如下图所示其中红色的点 ...

  9. css图片的相关操作

    css图片的相关操作 1.案例源码 <!DOCTYPE html><html lang="en"><head> <meta charset ...

  10. RobotFramework下HttpLibrary库其它关键字

    关键字 使用描述 DELETE 向服务器端发送http delete请求,该请求接收一个参数[ url ],请求的方式和post请求非常类似,示例: DELETE /_utils/config.htm ...