Java函数转换为Kotlin失败

vac*_*ach 4 java kotlin

尝试将一些Java代码转换为kotlin,给出以下方法

public class Option<T> {

  public <U> Option<U> map(Function<T, U> mapper) {
    throw new IllegalStateException();
  }
}
Run Code Online (Sandbox Code Playgroud)

kotlin转换会给出这个

在此输入图像描述

我无法理解这里的问题是什么,我如何在kotlin中创建等效方法?(多数民众赞成java.util.Function)

PS无法提出一些更好的问题摘要......随意改变.

hot*_*key 8

要使用java.util.function.Function,您必须明确导入它:

import java.util.function.Function
Run Code Online (Sandbox Code Playgroud)

那是因为默认情况下Function解析为kotlin.Function.

但是Kotlin中有一些函数类型,更多的是惯用的实现

fun <U> map(mapper: (T) -> U): Option<U> {
    // ...
}
Run Code Online (Sandbox Code Playgroud)