Me pregunto por qué java.util.ArrayList
permite agregar null
. ¿Hay algún caso en el que me gustaría agregar null
a un ArrayList
?
Me hago esta pregunta porque en un proyecto que teníamos un error en algún código se agregó null
a la ArrayList
y era difícil de detectar dónde estaba el error. Obviamente NullPointerException
se arrojó un pero no hasta que otro código intentó acceder al elemento. El problema era cómo localizar el código que agregaba el null
objeto. Hubiera sido más fácil si hubiera ArrayList
una excepción en el código donde se agregaban los elementos.
null
es la forma predeterminada de representar los datos faltantes en Java, te guste o no. De hecho, a mucha gente no le gusta y lo convierte en un argumento para cosas de estilo de programación funcional. La respuesta más votada no tiene sentido / no captura la esencia del problema.
null
es. "Missing" es solo una de varias interpretaciones potenciales de null
. Otras interpretaciones válidas pueden ser "Desconocido", "No aplicable" o "No inicializado". Lo que null
representa depende de la aplicación. Como diría la comunidad de Python: "Ante la ambigüedad, rechace la tentación de adivinar". Negarse a mantener nulo en un contenedor que sea perfectamente capaz de hacerlo sería solo eso, una suposición.
null
en la mayoría de sus colecciones).