2017-10-17 235 views
1

我有一个扩展Java类的Kotlin类。从Java超类访问静态字段

科特林

class MyKotlinClass: MyJavaClass() { 

    companion object { 
     const val STATUS_SUB = 1 
    } 
} 

的Java

public abstract class MyJavaClass { 

    public static final int STATUS_SUPER = 0 

} 

我如何可以通过科特林子类访问超类领域?

科特林

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

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

回答

2

尝试

MyJavaClass.STATUS_SUPER 

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

+0

有没有可能没有提到超类? – dumazy

+1

不,因为'static'成员不能被继承。继承仅适用于实例。 –

+0

嗯,太糟糕了。用Java子类而不是kotlin,这将是可能的 – dumazy

相关问题