Guava - İsteğe Bağlı Sınıf

İsteğe bağlı, boş olmayan bir nesneyi içermek için kullanılan değişmez bir nesnedir. İsteğe bağlı nesne, boş değeri olmayan değerle temsil etmek için kullanılır. Bu sınıf, kodun boş değerleri kontrol etmek yerine kullanılabilir veya mevcut olmayan değerleri işlemesini kolaylaştırmak için çeşitli yardımcı yöntemlere sahiptir.

Sınıf Beyanı

Aşağıdaki beyanı com.google.common.base.Optional<T> sınıf -

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

Sınıf Yöntemleri

Sr.No Yöntem ve Açıklama
1

static <T> Optional<T> absent()

İçeren başvuru içermeyen İsteğe bağlı bir örnek döndürür.

2

abstract Set<T> asSet()

Varsa, tek öğesi içerilen örnek olan değişmez bir tekil Küme döndürür; aksi takdirde boş bir değişmez Set.

3

abstract boolean equals(Object object)

Nesne bir İsteğe Bağlı örnek ise ve içerdiği başvurular birbirine eşitse veya her ikisi de yoksa doğru döndürür.

4

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

NullableReference null değilse, bu başvuruyu içeren bir İsteğe Bağlı örnek döndürür; aksi takdirde yok () döndürür.

5

abstract T get()

Mevcut olması gereken içerilen örneği döndürür.

6

abstract int hashCode()

Bu örnek için bir karma kod döndürür.

7

abstract boolean isPresent()

Bu tutucu bir (boş olmayan) örnek içeriyorsa doğru döndürür.

8

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

Verilen boş olmayan referansı içeren İsteğe bağlı bir örnek döndürür.

9

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

Mevcut bir değeri varsa, bu İsteğe Bağlı'yı döndürür; Aksi takdirde secondChoice.

10

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

Varsa, içerilen örneği döndürür; aksi takdirde tedarikçi.get ().

11

abstract T or(T defaultValue)

Varsa, içerilen örneği döndürür; defaultValue aksi takdirde.

12

abstract T orNull()

Varsa, içerilen örneği döndürür; Aksi takdirde null.

13

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

Yok () oluşumlarını atlayarak, sağlanan seçeneklerden mevcut her örneğin değerini sırayla döndürür.

14

abstract String toString()

Bu örnek için bir dize temsili döndürür.

15

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

Örnek mevcutsa, verilen Fonksiyon ile dönüştürülür; aksi takdirde yok () döndürülür.

Miras Alınan Yöntemler

Bu sınıf, aşağıdaki sınıftan yöntemleri miras alır -

  • java.lang.Object

İsteğe Bağlı Sınıf Örneği

Seçtiğiniz herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun 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;
   }	
}

Sonucu Doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici -

C:\Guava>javac GuavaTester.java

Şimdi sonucu görmek için GuavaTester'ı çalıştırın.

C:\Guava>java GuavaTester

Sonucu görün.

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