Guava-optional-class

提供:Dev Guides
移動先:案内検索

グアバ-オプションクラス

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

クラス宣言

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

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

クラスメソッド

Sr.No Method & Description
1

static <T> Optional<T> absent()

含まれる参照のないOptionalインスタンスを返します。

2

abstract Set<T> asSet()

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

3

abstract boolean equals(Object object)

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

4

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

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

5

abstract T get()

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

6

abstract int hashCode()

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

7

abstract boolean isPresent()

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

8

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

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

9

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

値が存在する場合、このOptionalを返します。それ以外の場合は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

オプションのクラスの例

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

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