最近我一直在研究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的字段」 –