与Java的OuterClass.super.method()相当的Kotlin是多少?

Example (in Java):

class Outer {
    class Inner {
        void someMethod() {
            Outer.super.someOtherMethod();
        }
    }

    @Override
    public String someOtherMethod() {
        // This is not called...
    }
}

推荐答案

使用super@OuterClass.method()语法:

open class C {
    open fun f() { println("C.f()") }
}

class D : C() {
    override fun f() { println("D.f()") }

    inner class X {
        fun g() {
            super@D.f() // <- here
        }
    }
}

这类似于JavaOuterClass.thisexpressed in Kotlin as this@OuterClass.

Kotlin相关问答推荐

在Kotlin 有更好的结合方式?

如何修改muableStateMapOf的值?

我可以更改方法中泛型类的类型参数边界吗?

使用 Jetpack Compose 使用参数导航

在 Kotlin 中 import 如何找到文件路径?

JetPack Compose:添加点击持续时间

异常传播如何在 CoroutineScope.async 上工作?

是否可以通过超时暂停协程?

Saripaar formvalidation 在 kotlin 中第二次不起作用

IntentService (kotlin) 的默认构造函数

Foo::class.java 和 Foo::javaClass 有什么区别?

Dagger2 Qualifier 不适用于 Kotlin?

Kotlin内联扩展属性

Android:在 DAO 中使用 Room 数据库和 LiveData 架构

Kotlin:什么是 kotlin.String!类型

Kotlin-通过与属性列表进行比较来筛选对象列表

封闭 lambda 的隐式参数被shadowed

用Gradle Kotlin DSL构建源jar?

WebFlux 功能:如何检测空 Flux 并返回 404?

使用 Kotlin 按字母对数组进行排序