使用者指南 User Guide
Guava專案包括了一些Google的核心庫,是我們在基於Java的專案中所依賴的,這些庫包括:集合,快取,對基本型別的支援,併發庫,通用的註解,字串處理,I/O,等等。這些工具的每一個真的都在被Google每天使用著,而且是在生產系統中。
但是隻是在Javadoc中尋覓不是學會怎麼使用一個庫的最有效的方法。在此,我們試圖對Guava的一些最流行和強大的特性做出良好的闡述。
這個wiki還沒有完工,它的有些部分仍然在構建中。
- 基礎工具:讓使用Java這個語言更令人愉快
- 使用以及避免null(Using and avoiding null): null可能會令人困惑,可以造成令人迷惑的錯誤,當然有時候就是看著不舒服。一些Guava的工具拒絕null,並且在使用null時快速失敗,而不是盲目地接收null
- 前置條件(Preconditions):使得為你的方法測試前置條件更容易
- 物件通用的方法(Common object methods):使得實現Object的方法更簡單,比如hashCode()以及toString()
- 順序(Ordering):提供Guava強大的"fluent Comparator"類(譯註:就是以fluent程式碼定義物件的Ordering,詳見連結過去的文件)
- 異常(Throwables):簡化了異常和錯誤的傳播和檢驗
- 集合:Guava對於JDK集合系統的擴充套件。下面是Guava的最成熟和流行的部分裡的一些。
-
不可變集合(Immutable collections),用於防禦性程式設計,常量集合,以及提高效率
-
新的集合型別(New collection types),提供了一些JDK的集合本該做得更好的用例:多重集,多重對映,表,雙向對映,以及其它。
- 強大的集合工具(Powerful collection utilities),提供了java.util.Collection沒有提供的操作
- 擴充套件工具(Extension utilities):想要寫一個集合的裝飾器?實現一個迭代器?我們可以讓它變得更容易。
-
- 快取(Caches):本地快取,使用得當,並且支援多種過期(expiration)行為
- 函式式(Functional idioms):謹慎使用,Guava的函式式可以極有效地簡化程式碼
- 併發(Concurrency):強大而又簡單地抽象,使得寫出正確的併發程式碼更容易
- ListenableFuture:在完成時執行回撥的Future
- Service:可以啟動和停止的東西,為你處理好了實現起來會很困難的狀態邏輯
- 字串(Strings):一些極其有用的字串工具:拆分,合併,填充,以及更多功能
- 基本型別(Primitives):用於基本型別的操作,比較int和char, 一些JDK沒有提供操作,包括一些型別的有符號形式
- 範圍(Ranges):Guava用於處理Comparable型別的範圍的強大的API,連續的以及離散的。
- I/O:簡化I/O操作,特別對整個I/O流和檔案的操作,用於Java5和6.
- 雜湊(Hashing): 比Object.hashCode()更加精緻的雜湊,包括布隆過濾器。
- 事件匯流排(EventBus):兩個元件之間釋出-採集形式的交流,然而並不要求這些元件之間顯式地互相註冊
- 數學工具(Math):優化的,徹底測試過的數學工具,是JDK沒有提供的
- 反射(Reflection):Guava為了Java的反射能力提供的工具
- 提示:使用Guava實現你的程式想做的事
- Guava的哲學(Philosophy): Guava是什麼,Guava不是什麼,我們的目標是什麼。
- 在你的構建中使用Guava(Using Guava in your build), 包括Maven, Gradle和其它的一些構建工具
- 使用專業防護(Using ProGuard )來避免你的JAR繫結到Guava裡你不用的部分。
- 與Apache Common等價的部分(Apache Commons equivalents),幫助你把程式碼從Apache Common的集合轉到Guava
- 相容性(Compatibility),在Guava的不同版本間的區別
- 被遺棄的點子(Idea Graveyard),一些被拒絕的新特性的請求
- 夥伴(Friends),我們喜歡和仰慕的開源專案
- 如何貢獻(HowToContribute),如何為Guava做貢獻