【问题标题】:How do you do qualified superclass constructor invocation in Kotlin?你如何在 Kotlin 中进行合格的超类构造函数调用?
【发布时间】:2020-06-28 13:56:42
【问题描述】:

我同时使用 Kotlin 和 Java。我正在寻找一种从 Kotlin 扩展非静态嵌套类的方法,但我不知道该怎么做。

来自JLS 1.8

示例 8.8.7.1-1合格的超类构造函数调用

class Outer {
    class Inner {}
}
class ChildOfInner extends Outer.Inner {
    ChildOfInner() { (new Outer()).super(); }
}

我尝试过如下操作,但在 Kotlin 中并没有真正起作用:

class ChildOfInner(): Outer().Outer.Inner()

【问题讨论】:

    标签: kotlin inheritance constructor inner-classes


    【解决方案1】:

    使用 Kotlin 我们可以这样继承inner 类:

    class ChildClass : Outer() {
        inner class ChildOfInner : Outer.Inner() {
    
        }
    } 
    

    所以首先我们必须继承Outer类,然后我们才能继承Inner类。

    【讨论】:

    • 我正在尝试在 Outer 类之外创建一个新的 Inner 实例。有没有办法在没有外部类继承的情况下扩展内部类?顺便说一句,谢谢你的回答。
    • 我不知道我们现在如何做到这一点,似乎这是唯一的方法。
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2018-03-29
    • 2021-09-19
    • 2013-07-19
    相关资源
    最近更新 更多