`
weitao1026
  • 浏览: 1047693 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Google的guava

阅读更多
guava是Java的一个扩展类库,在google的许多项目中使用过了,现在最为一个 开源的Java类库广泛使用(http://code.google.com/p/guava-libraries/)。

guava类库扩展的主要是这些相关类:collections(集合类),concurrency(并发),primitives,reflection(反射),comparison,I/O,hashing,networking(网络),strings(字符串),math(计算),in-memory caching(内存缓存),in-memory publish/subscirbe(内存发布订阅)等。

guava的目标是让我们写更少的代码,并且可以让我们写的代码更简单、清晰、可读性强。

下面我们对guava的使用方法和场景做一些介绍。



guava库需要在大于JDK1.6的版本下使用。


1.预先判断Preconditions


通常我们检查参数,是用如下方法

        public void setRating(Double rating){

                if(rating == null){

                        throw new NullPointerException();

                }

                Double r = rating;

        }

如果你使用guava的类库,可以使代码更加简洁


        public void setRating(Double rating){

                Double r = checkNotNull(rating);

        }

不过,记得添加静态引用(import static com.google.common.base.Preconditions.checkNotNull;),在Eclipse中的设置,可以参考(eclipse中添加静态引用)

除了checkNotNull之外,Preconditions还提供了一些其他的方法,如chekArgument,checkState,checkElementIndex,checkPositionIndex等,更多可参考Preconditions API。


2.Object.toStringHelper()


这个方法主要是用于更加简单的实现Object.toString()方法

        public String toString() {

                return Objects.toStringHelper(this).add("name", name)

                                                                                        .add("id", userId)

                                                                                        .add("pet",petName)

                                                                                        //.omitNullValues()

                                                                                        .toString();

        }

omitNullValues()当某个属性有空值的时候,不输出该熟悉。输出内容如下:


TestGuava{name=qiyadeng, id=12}

3.Stopwatch(计时器)



我们经常需要判断某一段语句执行需要多少时间,过去常用的做法是记录运行前的时间,然后用运行完成的时间减去运行前的时间,并且转换成我们可读的秒或是毫秒时间(这个转换过程可并不简单),在guava中的做法是:

                Stopwatch stopwatch = new Stopwatch().start();

                //do something test

                for (int i = 0; i < 10000; i++) {

                }

                long nanos = stopwatch.elapsed(TimeUnit.NANOSECONDS);

                System.out.println(nanos);

4.CharMatcher


字符匹配的方法特别多,举一个例子过滤用户的输出


                String userInput = "nihao1234-1";

                CharMatcher ID_MATCHER = CharMatcher.DIGIT.or(CharMatcher.is('-'));

                System.out.println(ID_MATCHER.retainFrom(userInput));

可以把输入的的字符类型去掉,只输出1234-1。更多的使用方法可以参考CharMatcher。



5.String Joining 字符串连接


可以快速地把一组字符数组连接成为用特殊符合连接的一个字符串,如果这组字符中有null值的话,我们可以使用skipNulls或是useForNull来控制我们要输出的内容。

                //Joiner JOINER= Joiner.on(",").skipNulls();

                Joiner JOINER= Joiner.on(",").useForNull("null");

                String str = JOINER.join("hello","world",null,"qiyadeng");

                //hello,world,null,qiyadeng


6.String Splitting字符串分割


有这样一组字符串”hello,,qiyadeng,com,”我们用split(“,”)分割字符串,得到的结果是["hello","","qiyaeng","com"],但是我们如果希望的是把空值去掉,还需要另外处理,使用guava的Splitter可以简单做到。

                Iterable<String> splitStr = Splitter.on(',').trimResults().omitEmptyStrings().split("hello,qiyadeng,com");

                for (String string : splitStr) {

                        System.out.println(string);

                }

本文链接地址: google guava使用例子/示范(一)
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

Feedback



# re: google guava使用例子/示范(一)  回复  更多评论   
2013-12-01 21:59 by ys
感谢分享,很有用!
当前版本发现
Stopwatch stopwatch = new Stopwatch().start();
不推荐使用,用以下方式替代:
Stopwatch stopwatch = Stopwatch.createUnstarted().start();
或:
Stopwatch stopwatch = Stopwatch.createStarted();
分享到:
评论

相关推荐

    使用google guava 实现定时缓存功能

    在IT行业中,Google Guava库是一个非常强大的工具集,它为Java开发人员提供了一系列实用的集合、缓存、并发和I/O工具。本篇文章将详细探讨如何利用Guava库实现定时缓存功能,以提高应用的性能和效率。 首先,Guava...

    Google Guava 官方教程

    **Google Guava官方教程** Google Guava 是一个广泛使用的 Java 库,它提供了一系列现代编程实用工具,旨在简化常见的编程任务。Guava 提供了集合框架的扩展、并发支持、缓存机制、字符串处理工具、I/O 工具以及...

    Getting Started with Google Guava

    《Getting Started with Google Guava》是Bill Bejeck所著,旨在帮助Java开发者通过Google Guava库编写更优质、更高效的代码。Bill Bejeck是一位拥有10年经验的资深软件工程师,专注于各种项目的开发工作。在写作...

    google guava 中文教程

    Google Guava是Google开发的一个开源Java库,它包含了一系列高级且实用的集合类、缓存机制、并发工具、字符串处理、I/O工具等,极大地提升了Java开发者的工作效率。Guava的目标是通过提供一系列现代实用工具,帮助...

    guavapdf-ch_GoogleGuava官方教程_

    **Google Guava官方教程概述** Google Guava 是一个开源库,为Java开发人员提供了一组核心库,包括集合、缓存、并发工具、I/O工具、字符串处理、实用方法等。这个官方教程主要针对Guava库的使用进行详细介绍,帮助...

    不加密Google Guava视频教程.txt

    ├─Google Guava 第01讲-Joiner详细介绍以及和Java8Collector对比.wmv ├─Google Guava 第02讲-Guava Splitter详细讲解以及实战练习.wmv ├─Google Guava 第03讲-Preconditions&Objects;&assert;讲解.wmv ├─...

    google guava

    Google Guava是一个由Google开发并维护的开源Java库,它为Java开发者提供了许多实用的工具类和集合框架,极大地简化了常见的编程任务。这个框架包含了多个模块,如基础(base)、缓存(cache)、I/O(io)以及并发...

    Google Guava

    Google Guava库是由Google开发的一个开源项目,旨在提供Java开发中常用的基础功能。它的目标是简化Java编程,为开发者提供更加清晰、高效的代码编写方式。通过使用Guava库,开发者可以不必在每次项目中重复编写相同...

    Getting Started with Google Guava code

    **Google Guava简介** Google Guava 是一个广泛使用的开源库,为Java开发人员提供了一系列实用工具类和集合框架。这个库旨在简化常见的编程任务,提高代码的可读性和可维护性。Guava 提供了丰富的功能,包括缓存、...

    谷歌guava的jar包和源码,值得收藏

    **谷歌Guava库详解** 谷歌Guava库是一个广泛使用的Java库,它提供了许多核心库的实用工具类,包括集合、缓存、并发、I/O、字符串处理、泛型 utilities、错误处理、网络、数学运算以及类加载器支持等多个方面。Guava...

    Google Guava 官方教程 - v1.1.2018-07-22.pdf

    Google Guava 官方教程 v1.1 2018-07-22 https://github.com/tianbian224/GuavaLearning/blob/master/Google%20Guava%20%E5%AE%98%E6%96%B9%E6%95%99%E7%A8%8B%20-%20v1.1.pdf

    Getting Started with Google Guava.pdf

    Google Guava 是一个由Google提供的开源Java库,它包含了许多强大的工具类和集合类,这些类可以帮助开发者更高效地编写Java代码。Guava的目标是提供一种更加简洁、优雅的方式来处理常见的编程任务,并且在很多情况下...

    google Guava集合工具类(超实用)

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...

    Google Guava 官方教程 - v1.1.epub

    Google Guava 官方教程,电子书,epub格式,可用在手机端阅读

    google-guava.jar

    《谷歌Guava库详解》 谷歌Guava,全称为Google Guava,是Google推出的一款Java库,它包含一系列基础工具类,旨在简化Java开发工作,提高代码效率和可维护性。Guava的核心特性包括集合框架、缓存、原始类型支持、...

    83丨开源实战三(下):借GoogleGuava学习三大编程范式中的函数式编程1

    Google Guava是一个Java库,提供了许多工具类和集合框架,其中也包含了对函数式编程的支持。例如,Guava的`com.google.common.base.Function`接口和`com.google.common.collect.Lists.transform`方法可以让开发者...

    Google Guava 30.1.1常用类介绍及实践代码

    **Google Guava 30.1.1常用类介绍及实践代码** Google Guava 是一个由 Google 开发的 Java 库,它提供了许多基础工具,包括集合、缓存、原生类型支持、并发库、字符串处理、I/O 等等。在版本 30.1.1 中,Guava 继续...

    Getting Started with Google Guava英文版

    ### 开始使用Google Guava #### 一、Google Guava简介与重要性 Google Guava是Google开发的一个Java核心库的集合,它为开发者提供了一系列高效、实用且易于使用的工具和功能,帮助开发者编写出更高质量、更高效率...

    Google Guava Sources.jar

    19的guava包 希望对大家有帮助

    guava-20.0-API文档-中文版.zip

    标签:google、guava、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

Global site tag (gtag.js) - Google Analytics