tôi đã xác định một hàm trong Kotlin:Làm cách nào để khai báo một tham số hàm để chấp nhận các hàm ném?
fun convertExceptionToEmpty(requestFunc:() -> List<Widget>): Stream<Widget> {
try {
return requestFunc().stream()
} catch (th: Throwable) {
// Log the exception...
return Stream.empty()
}
}
tôi đã xác định một phương pháp Java với chữ ký này:
List<Widget> getStaticWidgets() throws IOException;
tôi cố gắng để soạn họ như vậy:
Stream<Widget> widgets = convertExceptionToEmpty(() -> getStaticWidgets())
Khi Tôi biên dịch tôi gặp phải lỗi này:
Error:(ln, col) java: unreported exception java.io.IOException; must be caught or declared to be thrown
Làm cách nào để xác định các tham số chức năng của tôi để chấp nhận một hàm ném?
Bạn có thể thử chú thích hàm convertExceptionToEmpty của mình để ném IOException, có thể bỏ qua lỗi này. – Piwo
@piwo, tôi không nghĩ rằng điều này sẽ giúp ích, ngoại lệ đến từ phương thức 'getStaticWidgets()' ' –