扫码一下
查看教程更方便
Guava 是一个开源的、基于 Java 的库,包含许多谷歌的核心库,这些库被用在他们的许多项目中。 它促进最佳编码实践并有助于减少编码错误。 它为集合、缓存、原语支持、并发、公共注释、字符串处理、I/O 和验证提供实用方法。
本教程采用简单直观的方式描述 Guava 的基础到高级概念以及如何使用其 API。
考虑以下代码片段。
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 传递的参数。sum()
方法。NullPointerException
。为了避免上述问题,每一个出现此类问题的地方都要进行null check。
让我们看看如何使用 Guava 提供的 Utility 类 Optional
来标准化地解决上述问题。
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 类,我们可以检查调用方方法是否传递了正确的参数。
本教程对大多数 Java 开发人员都很有用,从初学者到专家。 完成本教程后,我们相信大家会发现在程序中使用 Guava 很容易。之前接触过 Java 编程是充分利用本教程的唯一要求。