En Java podríamos hacer lo siguiente
public class TempClass {
List<Integer> myList = null;
void doSomething() {
myList = new ArrayList<>();
myList.add(10);
myList.remove(10);
}
}
Pero si lo reescribimos a Kotlin directamente como se muestra a continuación
class TempClass {
var myList: List<Int>? = null
fun doSomething() {
myList = ArrayList<Int>()
myList!!.add(10)
myList!!.remove(10)
}
}
Recibí el error de no encontrar add
y remove
funcionar de mi lista
Trabajo para enviarlo a ArrayList, pero es extraño tener que hacerlo, mientras que en Java no es necesario. Y eso anula el propósito de tener la clase abstracta Lista
class TempClass {
var myList: List<Int>? = null
fun doSomething() {
myList = ArrayList<Int>()
(myList!! as ArrayList).add(10)
(myList!! as ArrayList).remove(10)
}
}
¿Hay alguna forma de usar List pero sin necesidad de lanzarlo, como lo que se podría hacer en Java?
myList = null
y luego más tarde agregar sin llamada!!
. Puede superar esto usando lalateinit
palabra clave frente a su propiedad delateinit var myList: List<Int>
esta manera : de esta manera no necesitará inicializar la lista de inmediato, pero le garantiza al compilador que la inicializará antes de usar la lista la primera vez. Es una solución más fluida, pero te responsabiliza como desarrollador.