是否可以为Java类添加“静态”扩展函数?

时间:2016-03-15 22:40:05

标签: kotlin

例如,我有Java类(来自外部库):

class A {} // This is Java class

我想添加写在Kotlin上的扩展函数,并将其命名为:

A.foo() // This is call of extension function `foo` from Kotlin code

据我了解,目前在Kotlin中无法做到,因为它仅支持KClass-es with companion object的“静态”扩展功能。正确?

似乎没有什么可以防止以后在Kotlin中实现这样的功能。正确?

1 个答案:

答案 0 :(得分:26)

你是对的。在Kotlin 1.0中,您可以在Kotlin类的伴随对象上定义扩展函数,并且可以使用A.foo()语法调用此类函数。支持在Java类上定义静态扩展函数是未来Kotlin版本的一个可能功能,但目前还不在Kotlin 1.1的路线图上。