
- Guava 教程
- Guava - 首頁
- Guava - 概述
- Guava - 環境設定
- Guava - Optional 類
- Guava - Preconditions 類
- Guava - Ordering 類
- Guava - Objects 類
- Guava - Range 類
- Guava - Throwables 類
- Guava - 集合工具類
- Guava - 快取工具類
- Guava - 字串工具類
- Guava - 原語工具類
- Guava - 數學工具類
- Guava 有用資源
- Guava - 快速指南
- Guava - 有用資源
- Guava - 討論
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。
為了避免上述問題,需要在存在此類問題的每個地方進行 null 檢查。
讓我們看看如何使用 Guava 提供的實用程式類 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 - 一個實用程式類,用於使程式碼正確使用 null。
Optional.of - 它返回 Optional 類的例項,用作引數。它檢查傳遞的值是否為 'null'。
Optional.get - 它獲取儲存在 Optional 類中的輸入值。
使用 Optional 類,您可以檢查呼叫方法是否傳遞了正確的引數。
廣告