"Java 方法转换为 Kotlin-6ren"> "Java 方法转换为 Kotlin-我正在尝试转换 Java 方法: private Callable createCallable(final Callable task) { return () -> { -6ren">
gpt4 book ai didi

kotlin - 将 "Callable"Java 方法转换为 Kotlin

转载 作者:行者123 更新时间:2023-12-01 08:49:39 26 4
gpt4 key购买 nike

我正在尝试转换 Java 方法:

private <T> Callable<T> createCallable(final Callable<T> task) {
return () -> {
try {
return task.call();
} catch (Exception e) {
handle(e);
throw e;
}
};
}

从以下 Java 文件 ExceptionHandlingAsyncTaskExecutor.java 到 Kotlin。

代码使用 IntelliJ IDEA 自动转换为:
private fun <T> createCallable(task: Callable<T>): Callable<T> {
return {
try {
return task.call()
} catch (e: Exception) {
handle(e)
throw e
}
}
}

这是不正确的。但我必须知道正确的实现应该是什么。有任何想法吗?

最佳答案

我认为这是 Kotlin 转换器的错误。它将您的代码转换为 () -> T 而不是 Callable<T>(这基本相同,但它们实际上是不同的类型)。
这是工作代码

private fun <T> createCallable(task: Callable<T>): Callable<T> {
return Callable {
try {
task.call()
} catch (e: Exception) {
handle(e)
throw e
}
}
}

关于kotlin - 将 "Callable<T>"Java 方法转换为 Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45315666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com