2016-03-17 12 views
5

Sto usando una classe Kotlin dal codice Java. La mia classe Kotlin assomiglia:Come creare una proprietà senza accessori in Kotlin?

class Something { 
    var a = 0 
} 

voglio essere in grado di accedere a a da codice Java come

s = new Something(); 
s.a = 5; 

però, ho solo s.getA() e s.setA(5). C'è un modo per rendere questa proprietà direttamente impostabile e ottenibile da Java? Ovviamente non possiamo avere getter e setter personalizzati in questo caso.

risposta

10

È possibile annotare una proprietà con @JvmField annotation per esporla come campo Java.

Se è necessario esporre una proprietà di Kotlin come campo in Java, è necessario annotarla con l'annotazione @JvmField. Il campo avrà la stessa visibilità della proprietà sottostante. È possibile annotare una proprietà con @JvmField se ha un campo di supporto, non è privato, non ha codici di modifica aperti, sovrascritti o const e non è una proprietà delegata.

+2

Esattamente quello di cui avevo bisogno. Grazie! – yuku

Problemi correlati