[英]Java8 lambda predicate exception
我有以下lambda表達式:
public mylambdafunction(){
Optional<MyClass> optional = Arrays.stream(myClassesValues).filter(x ->
new String(x.bytesArray,"UTF-16LE").equalsIgnoreCase(comparationString)).findFirst();
}
好吧,方法new String(x.bytesArray,” UTF-16LE”)
引發異常UnsupportedEncodingException
。
我想對主要函數mylambdafunction()
引發異常,如下所示:
public mylambdafunction() throws UnsupportedEncodingException{
....
}
那可能嗎?
因為您使用的是眾所周知的字符集,所以可能修改功能接口方法的另一種方法是使用重載的String
構造函數,該構造函數接受byte[]
和Charset
,但不拋出UnsupportedEncodingException
。
使用StandardCharsets.UTF_16LE
作為Charset
參數。
Stream#filter(Predicate)
需要一個提供test(Object)
方法的Predicate
。 由於此方法未聲明作為UnsupportedEncodingException
的超類型的檢查異常(並且由於UnsupportedEncodingException
本身已被檢查),因此任何正文引發此類異常的lambda表達式都是不兼容的。 同樣,對聲明此類異常的方法的任何方法引用也將不兼容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.