solito ho questo in Java:const statica in Kotlin da Java nome della classe
package some.package;
public class Clz {
public static final String ACTION_DIVE = Clz.class.getName() + ".action.DIVE";
}
che è accessibile dall'esterno quella classe come Clz.ACTION_DIVE
e il valore sarà "some.package.Clz.action.DIVE"
.
Come posso fare lo stesso nella classe Kotlin Clz
in modo che sia possibile accedervi allo stesso modo da classi Java esterne? Ho provato quanto segue, ma non viene compilato perché non è una costante:
package some.package
object Clz {
const val ACTION_DIVE = Clz.javaClass.name + ".action.DIVE"
}
non funziona. 'const val ACTION_DIVE = Clz :: class.java.name +" .action.DIVE "' L'errore è: 'Const val initializer dovrebbe essere un valore costante' – yuku
Usa' @ JvmField' invece di 'const' (' const' è solo per le costanti in fase di compilazione): https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#static-fields –
Immagino sia così. @JvmField. Grazie! – yuku