2015-09-16 67 views
5

看来我无法在Kotlin中使用对象的方法引用。此功能存在于Java中。Kotlin:方法参考不起作用?

例如在Java中,如果我是通过一个字符串循环每个字符以一个作家追加:

string.forEach(writer::append);

但在科特林使用相同的语法不起作用,因为:

enter image description here

+2

他们是不同的语言。为什么你会期望一个功能自动在另一个功能? – yshavit

+0

我认为他们在几个月前添加了适当的方法参考。这是保存样板文件的必要特性,这就是Kotlin所讲的内容。 – Jire

+2

他们可能有,我真的不知道Kotlin。但是我不明白与Java的联系,因为这个问题完全是关于Kotlin的。你是否检查过文档[函数引用](http://kotlinlang.org/docs/reference/reflection.html#function-references)? – yshavit

回答

11

目前,Kotlin仅支持引用顶级和本地函数以及的成员,而不是单个insta NCES。请参阅文档here

所以,你可以说Writer::append,并得到一个功能Writer.(Char) -> Writer,而是采取了writer实例,并说:writer::append得到一个功能目前不支持(Char) -> Writer

+1

谢谢!是否有计划在未来的Kotlin版本中添加该功能? – Jire

+1

https://youtrack.jetbrains.com/issue/KT-6947 – D3xter