如何扩展在科特林
问题描述:
Java的静态字段我有一个Java文件如何扩展在科特林
public class Code {
public static final int SUCCESS = 0;
public static final int FAIL = 1;
}
我创建一个扩展代码类科特林类。
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
唯一途径:
感谢您的回答 – Iconoclast