我在科特林定義的函數:如何聲明一個函數參數來接受拋出的函數?
fun convertExceptionToEmpty(requestFunc:() -> List<Widget>): Stream<Widget> {
try {
return requestFunc().stream()
} catch (th: Throwable) {
// Log the exception...
return Stream.empty()
}
}
我已經定義了一個Java方法與此簽名:
List<Widget> getStaticWidgets() throws IOException;
我嘗試撰寫他們像這樣:
Stream<Widget> widgets = convertExceptionToEmpty(() -> getStaticWidgets())
當我編譯我得到這個錯誤:
Error:(ln, col) java: unreported exception java.io.IOException; must be caught or declared to be thrown
如何定義我的函數參數以接受拋出的函數?
您可以嘗試註釋您的convertExceptionToEmpty函數以拋出IOException,這可能會繞過此錯誤。 – Piwo
@piwo,我認爲這不會有幫助,異常來自''getStaticWidgets()''方法 –