No entiendo por qué devolver nulo en el siguiente código. por favor ayuda

public Crime getCrime(UUID id){
   for (Crime crime: mCrimes){
      if (crime.getId().equals(id)){
        return crime;
      }
   }
   return null;
}
0
Kwins 22 dic. 2016 a las 15:21

2 respuestas

La mejor respuesta

Intente imaginar lo que sucedería si se elimina return null;. Después de eso, entenderá por qué es necesario poner eso allí.

En el método, recorre mCrimes para comprobar si la identificación de uno de los delitos es igual al parámetro id. Si es así, devuelva ese crimen. Ahora, ¿qué pasa si nada en mCrimes satisface la condición? La ejecución del código simplemente saldrá del ciclo y ... ¿no hará nada?

No podemos hacer nada porque hemos declarado el método para devolver un Crime. ¡No podemos dejar el método sin devolver nada! Debemos devolver algún valor. Dado que el método devuelve un delito con una identificación en particular, si la identificación pasada no corresponde a ningún delito, deberíamos no devolver nada para indicar que no hay ningún delito con esta identificación.

Como no queremos devolver nada si esto sucede, escribimos

return null;
3
Sweeper 22 dic. 2016 a las 13:02

Es porque si List / Array no contiene la identificación pasada, entonces no regresa de la condición dentro del ciclo y viene al final del ciclo.

Entonces, por fin, el método necesita algo para devolver.

Por eso devuelve nulo.

0
Jagruttam Panchal 22 dic. 2016 a las 13:43