Excepción básica de IndexOutOfBoundsException para principiantes.
Tengo una clase Engineer. Y estoy creando un arraylist vacío de tipo Engineer.
Estoy creando un método para comprobar el arraylist, si el arraylist no es nulo tiene que darme el índice 0. Pero si el arraylist es nulo, mi método tiene que crear un nuevo objeto Engineer y añadirlo al arraylist vacío. Después de agregarlo, espero que mi método me dé el índice 0. Pero arroja IndexOutOfBoundsException. Sé que se me pasaron algunas cosas simples, pero no pude averiguar cómo solucionarlo.
“`ArrayList
findLastEngineer(newEmptyEngineerList);
public static void findLastEngineer(ArrayList aa) {
<pre><code>if (aa.get(0)! = null) {
System.out.println(aa.get(0));
}
más {
Engineer eng = new Engineer ();
aa.add (0, eng);
System.out.println(aa.get(0));
}
</code></pre>
}“`
davy.ai
Hay algunas cosas que necesitan ser corregidas en el código:
findLastEngineer
debería tener un tipo genéricoArrayList<engineer>
en lugar de soloArrayList
.En la condición
if
, en lugar de verificar siaa.get(0)
es nulo, se debe verificar si el tamaño del arraylist es mayor o igual a 1. Por lo tanto, la condición debería serif (aa.size() >= 1)
.En el bloque
else
, el objetoEngineer
debería agregarse al final del arraylist en lugar del índice 0. Por lo tanto, la línea debe seraa.add(eng)
.Aquí está el código corregido:
Con estos cambios, el código debería funcionar como se espera.