例如,我有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中实现这样的功能。正确?
答案 0 :(得分:26)
你是对的。在Kotlin 1.0中,您可以在Kotlin类的伴随对象上定义扩展函数,并且可以使用A.foo()
语法调用此类函数。支持在Java类上定义静态扩展函数是未来Kotlin版本的一个可能功能,但目前还不在Kotlin 1.1的路线图上。