是否可以添加类似于向伴随对象添加扩展功能的静态扩展功能。我试过了
public fun ByteBuffer.Companion.invoke(capacity: Int): ByteBuffer
但它引起了Unresolved引用:Companion。我只是假设这是因为Companion没有在java代码中定义。
答案 0 :(得分:7)
你是对的,Java类没有伴随对象。您可以向类添加扩展(将在类的实例上显示)或声明的伴随对象(在类上看起来像静态):
class A { companion object }
class B { companion object Test }
fun A.Companion.foo() { println("Test A.foo") }
fun B.Test.foo() { println("Test B.foo") }
fun main(args: Array<String>) {
A.foo() // prints «Test A.foo»
B.foo() // prints «Test B.foo»
}
示例适用于 Kotlin 0.15.126