【问题标题】:Access static field from Java superclass [duplicate]从Java超类访问静态字段[重复]
【发布时间】:2017-10-17 08:56:11
【问题描述】:

我有一个扩展 Java 类的 Kotlin 类。

科特林

class MyKotlinClass: MyJavaClass() {

    companion object {
        const val STATUS_SUB = 1
    }
}

Java

public abstract class MyJavaClass {

    public static final int STATUS_SUPER = 0

}

如何通过kotlin子类访问超类字段?

科特林

when(status) {
    MyKotlinClass.STATUS_SUPER -> something()
    MyKotlinClass.STATUS_SUB -> somethingElse()
}

这可能吗?它说“未解决的参考:STATUS_SUPER” 不使用MyJavaClass.STATUS_SUPER可以吗?

【问题讨论】:

    标签: java kotlin


    【解决方案1】:

    试试

    MyJavaClass.STATUS_SUPER
    

    由于STATUS_SUPER 不是MyKotlinClass 的成员,您将无法访问它。

    【讨论】:

    • 是否可以不引用超类?
    • 否,因为static 成员不能被继承。继承仅适用于实例。
    • 嗯,太糟糕了。使用 Java 子类而不是 kotlin,这是可能的
    • 是的,没错。
    • 似乎并非如此。怎么样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2016-03-17
    相关资源
    最近更新 更多