如何在kotlin中扩展Java静态字段
我有一个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类的静态字段。
在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 } }
没有办法从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 }