> Java > java지도 시간 > Java 9에서 Optional.ifPresentOrElse()와 Optional.or() 메소드의 차이점은 무엇입니까?

Java 9에서 Optional.ifPresentOrElse()와 Optional.or() 메소드의 차이점은 무엇입니까?

PHPz
풀어 주다: 2023-08-26 20:49:02
앞으로
705명이 탐색했습니다.

Java 9中Optional.ifPresentOrElse()和Optional.or()方法之间的区别是什么?

Java 9 버전에서는 기능 개선을 위해 Optional.ifPresentOrElse()Optional.or() 메서드가 도입되었습니다. Optional.ifPresentOrElse() 메서드는 값이 있는지 확인하고, 있으면 해당 값에 대한 작업을 적용하고, 그렇지 않으면 no-op를 반환하는 반면, Optional.or() 메서드는 값이 있는지, 존재하는지 확인합니다. 값이 포함된 옵션을 반환하고, 그렇지 않으면 공급자 함수에 적용된 Optional을 반환합니다. Optional.ifPresentOrElse() 메서드에는 ConsumerRunnable이라는 두 개의 매개 변수가 포함되어 있는 반면, Optional.or() 메서드에는 Supplier라는 하나의 매개 변수만 포함되어 있습니다.

Optional.ifPresentOrElse() 구문:

<strong>public void ifPresentOrElse(Consumer<? super T><!--? super T--> action, Runnable emptyAction)</strong>
로그인 후 복사

Example

의 중국어 번역은 다음과 같습니다.

Example

import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;

public class IfPresentOrElseMethodTest {
   public static void main(String args[]) {
      optionalIsPresent();
      optionalIsEmpty();
   }
   private static void optionalIsPresent() {
      <strong>Optional<String></strong> optional = <strong>Optional.of</strong>("Test");
      AtomicInteger successCounter = new AtomicInteger();
      AtomicInteger emptyOptionalsCounter = new AtomicInteger();

      optional.<strong>ifPresentOrElse</strong>(x -> successCounter.incrementAndGet(), () ->       emptyOptionalsCounter.incrementAndGet());

      System.out.println(successCounter.get());
      System.out.println(emptyOptionalsCounter.get());
   }
   private static void optionalIsEmpty() {
      Optional optional = <strong>Optional.empty()</strong>;
      AtomicInteger successCounter = new AtomicInteger();
      AtomicInteger emptyOptionalsCounter = new AtomicInteger();

      optional.<strong>ifPresentOrElse</strong>(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet());

      System.out.println(successCounter.get());
      System.out.println(emptyOptionalsCounter.get())
   }
}
로그인 후 복사

Output

<strong>1
0
0
1</strong>
로그인 후 복사

Optional.or():

<strong>public Optional<T> or(Supplier<? extends Optional<? extends T<!--? extends Optional<? extends T-->>> supplier)</strong>
로그인 후 복사

Examp의 중국어 번역 르

다음으로 번역됨:

Example

import java.util.Optional;

public class OptionalOrMethodTest {
   public static void main(String args[]) {
      optionalIsPresent();
      optionalIsEmpty();
   }
   private static void optionalIsPresent() {
      <strong>Optional<String></strong> optional1 = <strong>Optional.of</strong>("Test1");
      <strong>Optional<String></strong> optional2 = <strong>Optional.of</strong>("Test2");

      <strong>Optional<String</strong><strong>></strong> optional3 = <strong>optional1.or</strong>(() -> optional2);
      System.out.println(optional3.get());
   }
   private static void optionalIsEmpty() {
      <strong>Optional<String></strong> optional1 = <strong>Optional.empty()</strong>;
      <strong>Optional<String></strong> optional2 = <strong>Optional.of</strong>("Test2");

      <strong>Optional<String></strong> optional3 = <strong>optional1.or</strong>(() -> optional2);
      System.out.println(optional3.get());
   }
}
로그인 후 복사

Output

<strong>Test1
Test2</strong>
로그인 후 복사

위 내용은 Java 9에서 Optional.ifPresentOrElse()와 Optional.or() 메소드의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿