使用 "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")
}
}
您好,我试图从 (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")
}
}