Java 8-선택적 클래스

선택 사항은 null이 아닌 개체를 포함하는 데 사용되는 컨테이너 개체입니다. 선택적 개체는 값이없는 null을 나타내는 데 사용됩니다. 이 클래스에는 코드가 널값을 확인하는 대신 '사용 가능'또는 '사용 불가능'으로 값을 처리 할 수 ​​있도록하는 다양한 유틸리티 메소드가 있습니다. Java 8에 도입되었으며 Guava의 Optional과 유사합니다.

클래스 선언

다음은에 대한 선언입니다. java.util.Optional<T> 클래스-

public final class Optional<T> extends Object

수업 방법

Sr. 아니. 방법 및 설명
1

static <T> Optional<T> empty()

빈 선택적 인스턴스를 반환합니다.

2

boolean equals(Object obj)

다른 개체가이 옵션과 "같은"지 여부를 나타냅니다.

Optional<T> filter(Predicate<? super <T> predicate)

값이 있고 값이 주어진 조건 자와 일치하면 값을 설명하는 Optional을 반환하고 그렇지 않으면 빈 Optional을 반환합니다.

4

<U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)

값이 있으면 제공된 Optional-bearing 매핑 함수를 여기에 적용하고 해당 결과를 반환하고 그렇지 않으면 빈 Optional을 반환합니다.

5

T get()

이 Optional에 값이 있으면 값을 반환하고, 그렇지 않으면 NoSuchElementException을 throw합니다.

6

int hashCode()

현재 값 (있는 경우)의 해시 코드 값을 반환하고 값이없는 경우 0 (영)을 반환합니다.

7

void ifPresent(Consumer<? super T> consumer)

값이 있으면 값으로 지정된 소비자를 호출하고 그렇지 않으면 아무 작업도 수행하지 않습니다.

8

boolean isPresent()

값이 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

9

<U>Optional<U> map(Function<? super T,? extends U> mapper)

값이 있으면 제공된 매핑 함수를 적용하고 결과가 null이 아니면 결과를 설명하는 Optional을 반환합니다.

10

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

지정된 현재 null이 아닌 값을 사용하여 Optional을 반환합니다.

11

static <T> Optional<T> ofNullable(T value)

null이 아닌 경우 지정된 값을 설명하는 Optional을 반환하고, 그렇지 않으면 빈 Optional을 반환합니다.

12

T orElse(T other)

값이 있으면 반환하고, 그렇지 않으면 다른 값을 반환합니다.

13

T orElseGet(Supplier<? extends T> other)

존재하는 경우 값을 반환하고, 그렇지 않으면 기타를 호출하고 해당 호출의 결과를 반환합니다.

14

<X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier)

포함 된 값 (있는 경우)을 반환하고, 그렇지 않으면 제공된 공급자가 생성 할 예외를 throw합니다.

15

String toString()

디버깅에 적합한이 Optional의 비어 있지 않은 문자열 표현을 리턴합니다.

이 클래스는 다음 클래스에서 메서드를 상속합니다-

  • java.lang.Object

선택적 예

C : \> JAVA에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.

Java8Tester.java

import java.util.Optional;

public class Java8Tester {

   public static void main(String args[]) {
      Java8Tester java8Tester = new Java8Tester();
      Integer value1 = null;
      Integer value2 = new Integer(10);
		
      //Optional.ofNullable - allows passed parameter to be null.
      Optional<Integer> a = Optional.ofNullable(value1);
		
      //Optional.of - throws NullPointerException if passed parameter is null
      Optional<Integer> b = Optional.of(value2);
      System.out.println(java8Tester.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.orElse - returns the value if present otherwise returns
      //the default value passed.
      Integer value1 = a.orElse(new Integer(0));
		
      //Optional.get - gets the value, value should be present
      Integer value2 = b.get();
      return value1 + value2;
   }
}

결과 확인

다음을 사용하여 클래스 컴파일 javac 다음과 같이 컴파일러-

C:\JAVA>javac Java8Tester.java

이제 다음과 같이 Java8Tester를 실행하십시오.

C:\JAVA>java Java8Tester

다음 출력을 생성해야합니다.

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