Guava-オプションクラス

オプションは、null以外のオブジェクトを含むために使用される不変オブジェクトです。オプションのオブジェクトは、値がないnullを表すために使用されます。このクラスには、null値をチェックする代わりに、コードが値を使用可能または使用不可として処理するのを容易にするさまざまなユーティリティメソッドがあります。

クラス宣言

以下はの宣言です com.google.common.base.Optional<T> クラス-

@GwtCompatible(serializable = true)
public abstract class Optional<T>
   extends Object
      implements Serializable

クラスメソッド

シニア番号 方法と説明
1

static <T> Optional<T> absent()

参照が含まれていないオプションのインスタンスを返します。

2

abstract Set<T> asSet()

含まれているインスタンスが存在する場合、その要素が含まれているインスタンスのみである不変のシングルトンセットを返します。それ以外の場合は、空の不変セット。

3

abstract boolean equals(Object object)

オブジェクトがオプションのインスタンスであり、含まれている参照が互いに等しいか、両方が存在しない場合にtrueを返します。

4

static <T> Optional<T> fromNullable(T nullableReference)

nullableReferenceがnull以外の場合、その参照を含むオプションのインスタンスを返します。それ以外の場合はabsent()を返します。

5

abstract T get()

含まれているインスタンスを返します。インスタンスは存在している必要があります。

6

abstract int hashCode()

このインスタンスのハッシュコードを返します。

7

abstract boolean isPresent()

このホルダーに(null以外の)インスタンスが含まれている場合はtrueを返します。

8

static <T> Optional<T> of(T reference)

指定されたnull以外の参照を含むオプションのインスタンスを返します。

9

abstract Optional<T> or(Optional<? extends T> secondChoice)

値が存在する場合、このオプションを返します。それ以外の場合はsecondChoice。

10

abstract T or(Supplier<? extends T> supplier)

含まれているインスタンスが存在する場合はそれを返します。それ以外の場合はsupplier.get()。

11

abstract T or(T defaultValue)

含まれているインスタンスが存在する場合はそれを返します。それ以外の場合はdefaultValue。

12

abstract T orNull()

含まれているインスタンスが存在する場合はそれを返します。それ以外の場合はnull。

13

static <T> Iterable<T> presentInstances(Iterable<? extends Optional<? extends T>> optionals)

absent()の発生をスキップして、指定されたオプションから現在の各インスタンスの値を順番に返します。

14

abstract String toString()

このインスタンスの文字列表現を返します。

15

abstract <V> Optional<V> transform(Function<? super T,V> function)

インスタンスが存在する場合、指定された関数で変換されます。それ以外の場合は、absent()が返されます。

継承されたメソッド

このクラスは、次のクラスからメソッドを継承します-

  • java.lang.Object

オプションクラスの例

たとえば、任意のエディタを使用して次のJavaプログラムを作成します。 C:/> Guava.

GuavaTester.java

import com.google.common.base.Optional;

public class GuavaTester {
   public static void main(String args[]) {
      GuavaTester guavaTester = new GuavaTester();

      Integer value1 =  null;
      Integer value2 =  new Integer(10);
      
      //Optional.fromNullable - allows passed parameter to be null.
      Optional<Integer> a = Optional.fromNullable(value1);
      
      //Optional.of - throws NullPointerException if passed parameter is null
      Optional<Integer> b = Optional.of(value2);		

      System.out.println(guavaTester.sum(a,b));
   }

   public Integer sum(Optional<Integer> a, Optional<Integer> b) {
      //Optional.isPresent - checks the value is present or not
      System.out.println("First parameter is present: " + a.isPresent());

      System.out.println("Second parameter is present: " + b.isPresent());

      //Optional.or - returns the value if present otherwise returns
      //the default value passed.
      Integer value1 = a.or(new Integer(0));	

      //Optional.get - gets the value, value should be present
      Integer value2 = b.get();

      return value1 + value2;
   }	
}

結果を確認する

を使用してクラスをコンパイルします javac 次のようにコンパイラ-

C:\Guava>javac GuavaTester.java

次に、GuavaTesterを実行して結果を確認します。

C:\Guava>java GuavaTester

結果を見てください。

First parameter is present: false
Second parameter is present: true
10