2016-04-15 97 views
2

试图将一些Java代码来科特林,给出以下方法JAVA功能转换到科特林失败

public class Option<T> { 

    public <U> Option<U> map(Function<T, U> mapper) { 
    throw new IllegalStateException(); 
    } 
} 

科特林转换会给这个

enter image description here

我不明白什么的问题就在这里,以及如何在kotlin中创建等价方法? (即java.util.Function

P.S.不能拿出一些更好的问题总结...随时改变。

回答

8

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

import java.util.function.Function 

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

但也有function types在科特林,更地道的实施将

fun <U> map(mapper: (T) -> U): Option<U> { 
    // ... 
} 
+0

哦愚蠢的错误,谢谢 – vach