Java 8 Lambda 함수에서 예외 처리
람다 표현식을 사용하여 메서드에 대한 참조를 생성할 때 예외 처리를 고려하는 것이 중요합니다. 기본 함수 참조 유형은 IOException을 확장하는 것과 같은 확인된 예외를 지원하지 않습니다.
이 문제를 해결하려면 다음 두 가지 접근 방식이 있습니다.
1. 사용자 정의 기능 인터페이스 정의
코드를 제어할 수 있는 경우 확인된 예외를 명시적으로 선언하는 사용자 정의 기능 인터페이스를 생성할 수 있습니다.
@FunctionalInterface public interface CheckedFunction<T, R> { R apply(T t) throws IOException; }
그런 다음 사용자 정의 기능 인터페이스를 사용합니다. 함수 참조를 정의하는 인터페이스:
void foo(CheckedFunction<String, Integer> f) { ... }
2. 확인된 메서드 래핑
확인된 메서드를 제어할 수 없는 경우 확인된 예외를 선언하지 않는 메서드로 래핑할 수 있습니다.
public Integer myWrappedMethod(String s) { try { return myMethod(s); } catch (IOException e) { throw new UncheckedIOException(e); } }
래핑된 메소드를 사용하면 다음과 같이 함수 참조를 생성할 수 있습니다.
Function<String, Integer> f = (String t) -> myWrappedMethod(t);
또는 예외 처리와 함께 람다 표현식을 사용할 수 있습니다. block:
Function<String, Integer> f = (String t) -> { try { return myMethod(t); } catch (IOException e) { throw new UncheckedIOException(e); } };
이러한 기술을 사용하면 Java 8 람다 함수에서 확인된 예외를 원활하게 처리하여 코드가 강력하고 예외로부터 안전하게 유지되도록 할 수 있습니다.
위 내용은 Java 8 Lambda 표현식에서 확인된 예외를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!