programing

Java 8 메서드 레퍼런스: 파라미터화된 결과를 제공할 수 있는 공급업체 제공

firstcheck 2022. 7. 24. 22:50
반응형

Java 8 메서드 레퍼런스: 파라미터화된 결과를 제공할 수 있는 공급업체 제공

사용하고 싶습니다

java.util.Optional.orElseThrow()

예외 유형을 사용하여 생성자 매개 변수를 요청합니다.다음과 같은 경우:

.orElseThrow(MyException::new(someArgument)) // obviously NOT working

제 주장의 가치를 전달할 공급업체를 만드는 방법이 있습니까?

물론이죠.

.orElseThrow(() -> new MyException(someArgument))

런타임만 던질 수 있는 것 같습니다.메서드의 예외orElseThrow그렇지 않으면 다음과 같은 오류 메시지가 나타납니다.MyException cannot be converted to java.lang.RuntimeException

업데이트: 이것은 이전 버전의 JDK에서 발생한 문제입니다.최신 버전에서는 이 문제가 발생하지 않습니다.

optionalUsers.orElseThrow(() -> new UsernameNotFoundException("Username not found"));

언급URL : https://stackoverflow.com/questions/22917138/java-8-method-references-provide-a-supplier-capable-of-supplying-a-parameterize

반응형