考慮以下Java類:Lambda表達式在科特林
public class SomeClass {
public interface Something {
void doSomething();
}
public void call(Something something) {}
}
在科特林,我可以使用lambda表達式如下:
SomeClass().call {
// do something
}
但是,如果我定義科特林以下的方法(使用相同的接口):
fun call(something: Something) {}
,則此調用:
call {
// do something
}
會生成類型不匹配錯誤。爲什麼?
這個決定對我來說很奇怪。考慮'List <(T) -> Unit>'vs'List>'。第二個則載有更多的信息。幸運的是有一個解決方法:我們可以在kotlin項目中自由使用java代碼。 –
Yaroslav
2015-09-24 07:34:27
雖然沒有太多的使用該解決方法:( – Yaroslav 2015-09-24 07:45:20
命名函數類型是一個不同的故事,他們將在下一個版本的Kotlin支持 – 2015-09-24 17:41:07