如何在kotlin中扩展Java静态字段

时间:2017-08-08 09:12:58

标签: kotlin

我有一个Java文件

public class Code {
    public static final int SUCCESS = 0;
    public static final int FAIL = 1;
}

我创建了一个扩展Code类的kotlin类。

object ResponseCode : Code() {
    val SKU_STOCK_NOT_ENOUGH = 2000
}

我无法在其他Kotlin函数中调用语句ResponseCode.SUCCESS。 我可以做些什么来使kotlin类扩展Code类的静态字段。

2 个答案:

答案 0 :(得分:0)

在Kotlin中,与Java不同,静态成员不会被子类继承,尽管可以在子类中调用它们而不指定基类名。

对于这种情况,您可以使用基类进行调用。或者:

object ResponseCode : Code() {
     val SKU_STOCK_NOT_ENOUGH = 2000
     val _SUCCESS = SUCCESS

}

另一个选择是声明方法而不是变量。

object ResponseCode : Code() {
    val SKU_STOCK_NOT_ENOUGH = 2000

    fun SUCCESS(): Int {
        return SUCCESS
    }
}

答案 1 :(得分:0)

无法从java类https://kotlinlang.org/docs/reference/java-interop.html#accessing-static-members

获取静态字段

唯一的方法:

object ResponseCode : Code() {
    val SKU_STOCK_NOT_ENOUGH = 2000

    fun getSuccess() = SUCCESS
    fun getFail() = FAIL

}