簡體   English   中英

Java8 Lambda謂詞異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM