使用 "this" 在 kotlin 的伴随范围内获取 class 实例

Using "this" to get class instance within companion scope in kotlin

您好,我试图从 (android studio) Kotlin 中的伴随作用域访问父 class 实例,例如

class A{

    companion object{
        val class_instance = this@A
    }
}

但它不起作用,而且它超出了 Companion 的范围。 有没有办法完成它,如果不能,为什么?

提前致谢。

class 需要默认实例的情况应该很少见,但在某些情况下可能有意义。标准库的 Random class 有一个默认实例,他们通过使其伴随对象成为 Random 本身的子 class 来做到这一点。

有意义的情况可能是抽象 class 可以自定义子 class ,但具有通常足以满足大多数需求的默认实现。

例如,您可以像这样使 A 的伴随对象成为 A 的子class:

abstract class A {
    abstract fun saySomething()

    companion object: A() {
        override fun saySomething() = println("Hello world")
    }
}