`
huangyongxing310
  • 浏览: 496378 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Guava 使用

 
阅读更多
Guava 使用


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




Optional类
使得参数在定义时就有了判空的操作,不用等到运行到方法时才出现空异常

public class GuavaTester {
   public static void main(String args[]){
      GuavaTester guavaTester = new GuavaTester();

      Integer invalidInput = null;
      Optional<Integer> a =  Optional.of(invalidInput);//在这里已经抛出空异常
      Optional<Integer> b =  Optional.of(new Integer(10));
      System.out.println(guavaTester.sum(a,b));
   }

   public Integer sum(Optional<Integer> a, Optional<Integer> b){
      return a.get() + b.get(); //获取值
   }    
}




一般用到of、get、fromNullable、or



Preconditions类

一般用到
static int checkElementIndex(int index, int size)
确保索引指定一个数组,列表或尺寸大小的字符串有效的元素。

static int checkElementIndex(int index, int size, String desc)
确保索引指定一个数组,列表或尺寸大小的字符串有效的元素。

static <T> T checkNotNull(T reference, Object errorMessage)
确保对象引用作为参数传递给调用方法不为空。

static int checkPositionIndex(int index, int size)
确保索引指定一个数组,列表或尺寸大小的字符串的有效位置。

static int checkPositionIndex(int index, int size, String desc)
确保索引指定一个数组,列表或尺寸大小的字符串的有效位置。

String desc //为出错时显示的信息




Ordering类 //排序用的


Objects类
static boolean equal(Object a, Object b)
确定两个可能是空的对象是否相等。



Bimap接口
public class GuavaTester {

   public static void main(String args[]){
      BiMap<Integer, String> empIDNameMap = HashBiMap.create();

      empIDNameMap.put(new Integer(101), "Mahesh");
      empIDNameMap.put(new Integer(102), "Sohan");
      empIDNameMap.put(new Integer(103), "Ramesh");

      //Emp Id of Employee "Mahesh"
      System.out.println(empIDNameMap.inverse().get("Mahesh"));
   }	
}




Objects.equal 可以实现null对象的比较


ComparisonChain(排序对比更简单)
排序器[Ordering]
public int compareTo(Foo that) {
    return ComparisonChain.start()
            .compare(this.aString, that.aString)
            .compare(this.anInt, that.anInt)
            .compare(this.anEnum, that.anEnum, Ordering.natural().nullsLast())
            .result();
}




hashCode:
Guava的Objects.hashCode(Object...)会对传入的字段序列计算出合理的、顺序敏感的散列值。


不可变集合()


缓存

字符串处理


区间Range


I/O
字节流和字符流


Guava提供了一个进程内非常轻量级的实现 EventBus,可以很好的实现模块之间的解耦。



分享到:
评论

相关推荐

    guava使用方法教程

    guava 使用方法 教程

    Guava使用培训教程

    ### Guava概述 Guava是Google推出的一款Java核心类库,旨在通过添加一系列经过充分测试且高度实用的工具集来优化Java...对于任何希望提高开发效率和代码质量的Java开发者来说,Guava都是一个值得深入学习和使用的库。

    guava使用研究与心得

    guava 技术使用研究,主要从基础角度介绍guava技术,在学习中的心得体会

    guava-30.1.1-jre-API文档-中英对照版.zip

    赠送jar包:guava-30.1.1-jre.jar; 赠送原API文档:guava-30.1.1-jre-javadoc.jar; 赠送源代码:guava-30.1.1-jre-sources.jar; 赠送Maven依赖信息文件:guava-30.1.1-jre.pom; 包含翻译后的API文档:guava-30.1...

    guava使用实例

    在本篇文章中,我们将深入探讨Guava在实际应用中的使用实例,包括文件操作、字符串操作、基本类型操作、集合操作以及断言操作。 1. 文件操作: Guava的`com.google.common.io`包提供了一系列方便的文件操作方法。...

    Google Guava 官方教程

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

    guava-19.0-src

    源码中可以看到,Guava使用了ConcurrentHashMap作为底层存储,保证了线程安全。 三、并发编程支持 Guava提供了强大的并发编程工具,如`ListenableFuture`,它扩展了Java的Future接口,增加了监听器支持,使得异步...

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

    Guava的缓存是线程安全的,无需额外的同步措施即可在多线程环境中使用。 综上所述,Google Guava的定时缓存功能使得我们能够轻松地在Java应用中实现高效的缓存机制,有效减少计算和网络请求的负担,提升整体性能。...

    guava-18.0(guava-18.0.jar和guava-18.0-sources.jar)

    `guava-18.0.jar`是Guava库的编译后的二进制版本,包含了所有Guava类和方法的字节码,开发者可以直接在项目中引用这个JAR文件来使用Guava的功能。Guava 18.0版本包含了大量实用工具,例如: 1. **集合框架扩展**:...

    guava-23.0.zip guava.jar guava

    在使用Guava时,需要将guava.jar添加到项目的类路径中,以便能够使用其中的类和方法。如果使用的是Maven或Gradle,可以通过添加对应的依赖来引入Guava库。 总的来说,Guava是一个非常强大的Java库,它提供了大量...

    Guava-Cache本地缓存案例代码

    本案例代码将详细介绍Guava Cache的使用,包括缓存的创建、删除、获取、失效监听、加载以及淘汰策略。 1. **缓存创建**: Guava Cache可以通过CacheBuilder类创建。CacheBuilder提供了丰富的配置选项,如最大容量...

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

    赠送jar包:guava-23.0.jar; 赠送原API文档:guava-23.0-javadoc.jar; 赠送源代码:guava-23.0-sources.jar; 赠送Maven依赖信息文件:guava-23.0.pom; 包含翻译后的API文档:guava-23.0-javadoc-API文档-中文...

    guava-19.0 jar和sources

    在Java开发中,Guava库被广泛使用,因为它包含了大量的集合框架、并发支持、缓存机制、字符串处理、I/O操作等多个方面的功能。 标题中的"guava-19.0.jar"是Guava库的19.0版本的二进制文件,包含了编译后的Java类,...

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

    赠送jar包:guava-20.0.jar; 赠送原API文档:guava-20.0-javadoc.jar; 赠送源代码:guava-20.0-sources.jar; 赠送Maven依赖信息文件:guava-20.0.pom; 包含翻译后的API文档:guava-20.0-javadoc-API文档-中文...

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

    赠送jar包:guava-17.0.jar; 赠送原API文档:guava-17.0-javadoc.jar; 赠送源代码:guava-17.0-sources.jar; 赠送Maven依赖信息文件:guava-17.0.pom; 包含翻译后的API文档:guava-17.0-javadoc-API文档-中文...

    重试框架spring-retry以及guava-retry的使用

    本文将深入探讨两个常用的重试框架:Spring Retry和Guava Retry,并通过一个名为`retry-starter`的Spring Boot项目实例,来解析它们的使用方式以及差异。 首先,我们来看Spring Retry。Spring Retry是Spring框架的...

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

    赠送jar包:guava-18.0.jar; 赠送原API文档:guava-18.0-javadoc.jar; 赠送源代码:guava-18.0-sources.jar; 包含翻译后的API文档:guava-18.0-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:...

    Guava 工程项目包 有实例

    Guava 是一个由 Google 开发并维护的 Java 库,它提供了许多实用工具类和集合框架的增强功能,极大地丰富了 Java 平台的标准库...此外,了解并掌握 Guava 的使用,能够使你的代码更加简洁、高效,同时减少潜在的错误。

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

    赠送jar包:guava-11.0.2.jar; 赠送原API文档:guava-11.0.2-javadoc.jar; 赠送源代码:guava-11.0.2-sources.jar; 赠送Maven依赖信息文件:guava-11.0.2.pom; 包含翻译后的API文档:guava-11.0.2-javadoc-API...

    guava多个版本jar包

    Guava是Google开发的一个Java库,它包含许多Google核心库使用的功能,如集合、缓存、并发库、原生类型支持、字符串处理、I/O等。这个压缩包包含的是Guava的不同版本,分别是guava-2.6.2.jar、guava-18.0.jar、guava-...

Global site tag (gtag.js) - Google Analytics