我有一个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类的静态字段。
答案 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
}