Ổi - Loại tùy chọn

Tùy chọn là một đối tượng không thay đổi được sử dụng để chứa một đối tượng not-null. Đối tượng tùy chọn được sử dụng để biểu diễn null với giá trị không có. Lớp này có các phương thức tiện ích khác nhau để tạo điều kiện cho mã xử lý các giá trị có sẵn hoặc không có sẵn thay vì kiểm tra các giá trị null.

Khai báo lớp học

Sau đây là khai báo cho com.google.common.base.Optional<T> lớp học -

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

Phương pháp lớp học

Sr.No Phương pháp & Mô tả
1

static <T> Optional<T> absent()

Trả về một cá thể Tùy chọn không có tham chiếu được chứa.

2

abstract Set<T> asSet()

Trả về một Tập hợp singleton bất biến có phần tử duy nhất là thể hiện được chứa nếu nó có mặt; một bất biến rỗng Đặt ngược lại.

3

abstract boolean equals(Object object)

Trả về true nếu đối tượng là một đối tượng Tùy chọn và hoặc các tham chiếu được chứa bằng nhau hoặc cả hai đều không có.

4

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

Nếu nullableReference không phải là null, trả về một thể hiện Tùy chọn chứa tham chiếu đó; ngược lại trả về vắng mặt ().

5

abstract T get()

Trả về cá thể được chứa, phải có mặt.

6

abstract int hashCode()

Trả về mã băm cho trường hợp này.

7

abstract boolean isPresent()

Trả về true nếu chủ sở hữu này chứa thể hiện (không phải null).

số 8

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

Trả về một cá thể Tùy chọn chứa tham chiếu không rỗng đã cho.

9

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

Trả về tùy chọn này nếu nó có một giá trị hiện tại; thứ hai Chọn cách khác.

10

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

Trả về cá thể chứa nếu nó hiện diện; nhà cung cấp.get () ngược lại.

11

abstract T or(T defaultValue)

Trả về cá thể chứa nếu nó hiện diện; defaultValue nếu không.

12

abstract T orNull()

Trả về cá thể chứa nếu nó hiện diện; null nếu không.

13

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

Trả về giá trị của mỗi phiên bản hiện tại từ các tùy chọn được cung cấp, theo thứ tự, bỏ qua các lần xuất hiện của hàm vắng mặt ().

14

abstract String toString()

Trả về một biểu diễn chuỗi cho trường hợp này.

15

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

Nếu thể hiện có mặt, nó được chuyển đổi với Hàm đã cho; ngược lại, hàm vắng mặt () được trả về.

Phương thức được kế thừa

Lớp này kế thừa các phương thức từ lớp sau:

  • java.lang.Object

Ví dụ về Lớp tùy chọn

Tạo chương trình java sau bằng cách sử dụng bất kỳ trình soạn thảo nào bạn chọn 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;
   }	
}

Xác minh kết quả

Biên dịch lớp bằng cách sử dụng javac trình biên dịch như sau -

C:\Guava>javac GuavaTester.java

Bây giờ hãy chạy GuavaTester để xem kết quả.

C:\Guava>java GuavaTester

Xem kết quả.

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