Recentemente ho esaminato il lang di Kotlin e il suo interop con java. Ho seguente codice Java:Uso delle costanti kotlin nell'espressione java switch
public void select(int code) {
switch code {
case Service.CONSTANT_ONE:
break;
case Service.CONSTANT_TWO:
break;
default:
break;
}
}
Dove Service.kt
scritto come segue:
class Service {
companion object {
val CONSTANT_ONE = 1
val CONSTANT_TWO = 2
}
}
Java compilatore dice che CONSTANT_ONE e CONSTANT_TWO devono essere costanti, ma non so, come posso fare più costante di quello che sono adesso. Quindi la mia domanda è: come usare le costanti da kotlin nell'istruzione java swicth?
Sto usando jdk8 e kotlin M14.
Non so kotlin. Ma in Java una costante del caso switch deve essere nota al momento della compilazione. Quindi un campo finale/costante assegnato durante la compilazione non può essere utilizzato in un'istruzione switch. –
@Pinkie si, se ho dichiarato 'CONSTANT_ONE' come' static final' da qualche parte nel codice java, potrei usarlo in switch statement. Comunque non so come potrei scriverlo in modo più rigoroso a Kotlin di quanto lo sia ora. – Mikhail
M14 cambia stato "Poiché M14 è necessario prefiggere le costanti di Kotlin con const per poterle usare nelle annotazioni e vedere come campi da Java" –