简介

  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. Davinci DM6446 Codec Engine双核通信环境的搭建

    根据前几篇文章,一个DM6446的系统已经架构完成.但是有很多人都喜欢TI的机制,毕竟双核软件开发对很多工程师来说是非常麻烦的事情,既然TI提供开发套件和开发包,那么直接做OEM就可以了,底层的东西不 ...

  2. php学习笔记upset函数。

    如果在函数中我们不希望再使用某个变量.可以使用unset()销毁函数, ②在php函数中,我们可以给某些参数赋一个默认初值. ③可以传一个默认的参数. ④php在传递变量的时候,默认是传递值传递,如果 ...

  3. Java中的i++和i--

    /** * @Title:DataCate.java * @Package:com.you.dao * @Description:数据类型转换 * @Author: 游海东 * @date: 2014 ...

  4. Windows控制台下绘制简单图形

    最近接触到一个很有意思的问题,如何在Windows控制台下画图,翻遍了C的头文件也没找到画图的函数,好吧,那就用Windows提供的API函数吧,看来想移植是没戏了.先画一个简单的图,类似心电图那种吧 ...

  5. freemarker报错之十五

    1.错误描述 六月 04, 2014 11:04:03 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  6. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'user'

    1.错误描述 2014-7-12 21:06:05 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager 信息: I ...

  7. Java中的StringBuffer

    Java中的StringBuffer /** * */ package com.you.model; /** * @author YouHaidong * */ public class StrFoo ...

  8. 使用WebApiClient请求和管理Restful Api

    前言 本篇文章的内容是WebApiClient应用说明篇,如果你没有了解过WebApiClient,可以先阅读以下相关文章: WebApi client 的面向切面编程 我来给.Net设计一款Http ...

  9. 【BZOJ1018】堵塞的交通(线段树)

    [BZOJ1018]堵塞的交通(线段树) 题面 Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可 以被看成是一个2行C列的矩形网 ...

  10. 初读 c# IL中间语言

    对一段c#编写的代码,有一些疑问,想通过IL中间语言看看,编译后是怎么处理的.代码如下: static StringBuilder sb = new StringBuilder(); ; ; /// ...