最近我一直在研究Kotlin lang,并与java进行了互操作。我有以下的Java代码:在java开关表达式中使用kotlin常量
public void select(int code) {
switch code {
case Service.CONSTANT_ONE:
break;
case Service.CONSTANT_TWO:
break;
default:
break;
}
}
凡Service.kt
写成如下:
class Service {
companion object {
val CONSTANT_ONE = 1
val CONSTANT_TWO = 2
}
}
Java编译器说,CONSTANT_ONE和CONSTANT_TWO必须是常量,但我不知道,我怎么才能让他们更不变的比现在。所以我的问题是:如何在java swicth语句中使用来自kotlin的常量?
我正在使用jdk8和kotlin M14。
我不知道kotlin。但是在java中,编译时必须知道开关情况常量。因此,在编译期间分配的最终/常量字段不能用在switch语句中。 –
@Pinkie是啊,如果我在java代码中声明'CONSTANT_ONE'为'static final',我可以在switch语句中使用它。但是我不知道如何在Kotlin中以更严格的方式写出比现在更多的信息。 – Mikhail
M14改变状态“自M14以来,我们需要在const中加上Kotlin常量,以便能够在注释中使用它们,并将它们看作Java的字段” –