2014-12-16 3 views
0

본인은 다음과 람다 식을 가지고있다. 나는 주요 기능 mylambdafunction()에 예외를 발생하고 싶습니다Java8 람다 술어 예외

, 같은 일도 :

public mylambdafunction() throws UnsupportedEncodingException{ 
.... 
} 

는 것이 가능할까요?

+1

다른 질문 [람다 식에서 검사 된 예외] (http://stackoverflow.com/q/14039995/697630)를 읽어보십시오. 그것은 좋은 답변을 가지고 있으며, 아마도 당신도 거기에서 찾을 것입니다. –

답변

4

잘 알려진 문자 집합을 사용하기 때문에 잠재적으로 기능 인터페이스 메서드를 수정하는 대신 the overloaded String constructor which accepts a byte[] and a Charset을 사용하지만 UnsupportedEncodingException은 반환하지 않습니다.

Charset 인수로 StandardCharsets.UTF_16LE을 사용하십시오.


Stream#filter(Predicate)test(Object) 방법을 제공하는 것으로 예상 Predicate. 이 메소드는 수퍼 유형 인 검사 된 예외를 UnsupportedEncodingException으로 선언하지 않으므로 (UnsupportedEncodingException 자체가 검사되기 때문에) 본문이 예외를 throw하는 모든 람다 표현식은 호환되지 않습니다. 마찬가지로, 예외를 선언하는 메서드에 대한 메서드 참조도 호환되지 않습니다.

+0

@Sotirios에 감사드립니다! 이것은 나의 현재의 문제를 해결하지만 미래에 대한 예외를 제기 할 수 있는지 알고 싶습니다! –

+3

@ J.R. 내가 가장 최근에 편집 한 내용을 봅니다. 예외가 귀하의 람다 본문에 던져 질 수 있습니다. 당신이 그것을'try-catch'하지 않는다면, 메소드는 그것을 던져야 만합니다. 그러나 그것을 던지는 것은'Predicate' 기능 인터페이스와 호환되지 않습니다. –