同一個類裡的Companion Object為什麼無法引用自己類的方法
时间: 2024-03-14 17:47:04 浏览: 129
在 Kotlin 中,同一个类中的 `Companion Object` 可以引用自己的方法,但是需要使用 `this@Companion` 来访问。
下面是一个示例代码:
```kotlin
class MyClass {
companion object {
fun companionFunction() {
println("Companion Object Function")
}
fun myFunction() {
println("My Function")
this@Companion.companionFunction()
}
}
}
fun main() {
MyClass.companionFunction() // 输出: Companion Object Function
MyClass.myFunction() // 输出: My Function\nCompanion Object Function
}
```
在这个示例中,`MyClass` 中的 `Companion Object` 定义了两个方法:`companionFunction()` 和 `myFunction()`。在 `myFunction()` 中,我们通过 `this@Companion` 来访问 `Companion Object` 中的方法 `companionFunction()`。
注意,在 `Companion Object` 中,我们可以直接访问类的私有方法和变量,但是在访问时需要使用 `this`。例如,如果 `MyClass` 中有一个私有方法 `privateFun()`,我们可以在 `Companion Object` 中通过 `this@MyClass.privateFun()` 来访问。
阅读全文