グアバ-概要
グアバとは何ですか?
GuavaはオープンソースのJavaベースのライブラリであり、多くのプロジェクトで使用されているGoogleのコアライブラリが多数含まれています。コーディングのベストプラクティスを促進し、コーディングエラーを減らすのに役立ちます。これは、コレクション、キャッシング、プリミティブのサポート、並行性、一般的なアノテーション、文字列処理、I / O、および検証のためのユーティリティメソッドを提供します。
グアバの利点
Standardized −GuavaライブラリはGoogleによって管理されています。
Efficient −これは、Java標準ライブラリの信頼性が高く、高速で、効率的な拡張機能です。
Optimized −ライブラリは高度に最適化されています。
Functional Programming −Javaに機能的な処理機能を追加します。
Utilities −プログラミングアプリケーション開発で定期的に必要とされる多くのユーティリティクラスを提供します。
Validation −標準のフェイルセーフ検証メカニズムを提供します。
Best Practices −ベストプラクティスに重点を置いています。
次のコードスニペットについて考えてみます。
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()メソッドにnullを渡すことを心配していません。
プログラムを実行すると、NullPointerExceptionが発生します。
上記の問題を回避するために、そのような問題が存在するすべての場所でヌルチェックを行う必要があります。
標準化された方法で上記の問題を解決するために、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 −コードにnullを適切に使用させるためのユーティリティクラス。
Optional.of−パラメータとして使用するOptionalクラスのインスタンスを返します。'null'ではなく、渡された値をチェックします。
Optional.get −Optionalクラスに格納されている入力の値を取得します。
オプションクラスを使用すると、呼び出し元のメソッドが適切なパラメータを渡しているかどうかを確認できます。