Guava-overview
提供:Dev Guides
グアバ-概要
グアバとは何ですか?
GuavaはオープンソースのJavaベースのライブラリであり、Googleの多くのコアライブラリが含まれており、それらのプロジェクトの多くで使用されています。 コーディングのベストプラクティスを促進し、コーディングエラーの削減に役立ちます。 コレクション、キャッシュ、プリミティブサポート、同時実行性、一般的な注釈、文字列処理、I/O、および検証のためのユーティリティメソッドを提供します。
グアバの利点
- Standardized -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が発生します。
上記の問題を回避するために、そのような問題が存在するすべての場所でヌルチェックを行う必要があります。
上記の問題を標準化された方法で解決するために、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)
上記のプログラムの重要な概念を理解しましょう。
- オプション-コードがnullを適切に使用するためのユーティリティクラス。
- Optional.of -パラメータとして使用されるOptionalクラスのインスタンスを返します。 「null」ではなく、渡された値をチェックします。
- Optional.get -Optionalクラスに保存されている入力の値を取得します。
Optionalクラスを使用すると、呼び出し元のメソッドが適切なパラメーターを渡しているかどうかを確認できます。