Guava 概述

来源:这里教程网 时间:2026-02-17 21:40:54 作者:

Guava 概述

什么是Guava

Guava是一个开源的、基于Java的库,包含了Google的许多核心库,被广泛应用于他们的项目中。它促进了最佳编码实践的使用,并帮助减少编码错误。它提供了集合、缓存、原始类型支持、并发、常见注解、字符串处理、I/O和验证等方面的工具方法。

Guava的优势

标准化 - Guava库由Google管理。

高效 - 它是Java标准库的可靠、快速和高效扩展。

优化 - 该库经过高度优化。

函数式编程 - 它为Java添加了函数式处理能力。

实用工具 - 它提供了许多在应用程序开发中经常需要的实用类。

验证 - 它提供了一个标准的容错验证机制。

最佳实践 - 它强调最佳实践。

考虑下面的代码片段。

public class GuavaTester {   public static void main(String args[]) {      GuavaTester guavaTester = new GuavaTester();      Integer a =  null;      Integer b =  new Integer(10);      System.out.println(guavaTester.sum(a,b));   }   public Integer sum(Integer a, Integer b) {      return a + b;   }    }

运行程序以获得以下结果。

Exception in thread "main" java.lang.NullPointerException   at GuavaTester.sum(GuavaTester.java:13)   at GuavaTester.main(GuavaTester.java:9)

以下是代码存在的问题。

sum()方法没有处理传递为null的任何参数。

调用函数也没有注意到意外地将null传递给sum()方法。

程序运行时会出现NullPointerException。

为了避免上述问题,在存在这种问题的每个地方都需要进行空检查。

让我们看看如何使用Optional,即Guava提供的实用类,以标准的方式解决上述问题。

import com.google.common.base.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();   }    }

运行程序以获取以下结果。

Exception in thread "main" java.lang.NullPointerException    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)    at com.google.common.base.Optional.of(Optional.java:85)    at GuavaTester.main(GuavaTester.java:8)

让我们了解上述程序的重要概念。

Optional − 一个实用类,用于正确使用null。

Optional.of − 它返回Optional类的实例以用作参数。它检查传递的值不是’null’。

Optional.get − 它获取存储在Optional类中的输入值。

使用Optional类,您可以检查调用方法是否传递正确的参数。

相关推荐