有没有一种方法可以将Java方法声明为Kotlin的中缀

时间:2019-03-06 13:00:59

标签: java kotlin dsl

有没有一种方法可以从java类中声明一个方法,以便可以像kotlin中的infix函数那样调用它,就像这样:

public class Foo {
  public void doFoo (String bar) {}
}

然后从kotlin文件中

foo doFoo "bar"

2 个答案:

答案 0 :(得分:5)

As of Kotlin 1.3, no:

  

由于Java无法标记使用操作符语法有意义的方法,因此Kotlin允许使用具有正确名称和签名的任何Java方法作为操作符重载和其他约定(invoke()等)< strong>不允许使用infix调用语法调用Java方法。

答案 1 :(得分:2)

您可以添加infix扩展名以从Kotlin获取该语法:

infix fun Foo.doFoo(bar: String) {
    return doFoo(bar)
}