Diciamo che ho dichiarato un campo finale con private final String s
(Java) o val s
(Kotlin). Durante l'inizializzazione, desidero inizializzare il campo con il risultato di una chiamata a un servizio remoto. In Java sarei in grado di inizializzarlo nel costruttore (ad esempio s = RemoteService.result()
), ma in Kotlin non riesco a capire come farlo perché, per quanto posso dire, il campo deve essere inizializzato nella stessa riga dichiarata. Qual è la soluzione qui?Come inizializzare un campo finale in Kotlin?
6
A
risposta
10
È possibile impostare val
valore nel blocco init:
class MyClass {
val s: String
init {
s = "value"
}
}
4
È anche possibile inizializzare il valore con by lazy
il valore verrà inizializzato la prima volta che si parla. Un esempio
val s by lazy { RemoteService.result() }
kotlin indovina il tipo di s dal tipo restituito dell'espressione.
Problemi correlati
- 1. Come inizializzare pigro con un parametro in Kotlin
- 2. Come inizializzare un campo const nel costruttore?
- 3. Come inizializzare un campo di bit in un costruttore
- 4. Come inizializzare l'elenco <T> in Kotlin?
- 5. Kotlin: inizializzare attributo di classe nel costruttore
- 6. Inizializzazione campo non finale
- 7. posso utilizzare sincronizzato su un campo finale?
- 8. Come inizializzare la MutableList di Kotlin per svuotare MutableList?
- 9. Come simulare il campo finale? Mockito/powermock
- 10. Come aggiungere un campo finale statico con l'inizializzatore usando ASM?
- 11. golang - come inizializzare un campo mappa all'interno di una struttura?
- 12. Rimuovere lo spazio vuoto finale in un contenuto del campo
- 13. Come inizializzare un campo Data in un oggetto di dominio Grails per agire come un timestamp?
- 14. riferimento al campo finale da un'espressione lambda
- 15. Assegnare al campo finale statico del omonimo
- 16. In Java, un campo finale può essere inizializzato da un helper costruttore?
- 17. Classe astratta con campo non inizializzato finale
- 18. Dichiarare un campo lista con la parola finale
- 19. Come scrivere su un file in Kotlin?
- 20. Utilizzare @ClassRule in Kotlin
- 21. Come inizializzare un unique_ptr
- 22. In ArrayBlockingQueue, perché copiare il campo membro finale nella variabile finale locale?
- 23. Perchè non riesco a inizializzare campo statico in C++
- 24. Come inizializzare un NSWindowController in Swift?
- 25. Come inizializzare un array dinamico in java?
- 26. Come inizializzare un array in Tcl?
- 27. Come inizializzare un semaforo binario in C
- 28. Come inizializzare un array vuoto in C#?
- 29. Come inizializzare un CLSID costante
- 30. Creazione di Hashtable come finale in java