Ich habe vor kurzem in Kotlin Sprache und seine Interop mit Java untersucht. Ich habe folgende Java-Code:Mit Kotlin-Konstanten in Java Switch-Ausdruck
public void select(int code) {
switch code {
case Service.CONSTANT_ONE:
break;
case Service.CONSTANT_TWO:
break;
default:
break;
}
}
Wo Service.kt
wie folgt geschrieben:
class Service {
companion object {
val CONSTANT_ONE = 1
val CONSTANT_TWO = 2
}
}
Java-Compiler sagt, dass CONSTANT_ONE und CONSTANT_TWO Konstanten sein müssen, aber ich weiß nicht, wie ich sie machen mehr konstant als sie jetzt sind. Also meine Frage ist: wie Konstanten von Kotlin in Java Swicth Aussage zu verwenden?
Ich benutze jdk8 und kotlin M14.
Ich weiß nicht über Kotlin. Aber in Java muss zum Zeitpunkt der Kompilierung eine Konstante für den Schalterfall bekannt sein. Ein endgültiges/konstantes Feld, das während der Kompilierungszeit zugewiesen wird, kann daher in einer switch-Anweisung nicht verwendet werden. –
@Pinkie Ja, wenn ich 'CONSTANT_ONE' irgendwo im Java-Code als' static final' deklariert habe, könnte ich es in der switch-Anweisung verwenden. Aber ich weiß nicht, wie ich es in Kotlin strikter schreiben könnte als jetzt. – Mikhail
M14 ändert den Status "Seit M14 müssen wir die Kotlin-Konstanten mit const voranstellen, um sie in Annotationen verwenden zu können und als Felder von Java zu sehen" –