Eu me pergunto por que java.util.ArrayListpermite adicionar null. Existe algum caso em que eu gostaria de adicionar nulla um ArrayList?
Estou fazendo essa pergunta porque, em um projeto, tivemos um bug em que algum código estava sendo adicionado nullao arquivo ArrayListe era difícil identificar onde estava o erro. Obviamente, um NullPointerExceptionfoi lançado, mas não até outro código tentar acessar o elemento. O problema foi como localizar o código que adicionou o nullobjeto. Teria sido mais fácil se houvesse ArrayListuma exceção no código em que os elementos estavam sendo adicionados.
nullé a maneira padrão de representar dados ausentes em Java, quer você goste ou não. De fato, muitas pessoas não gostam e fazem disso um argumento para coisas funcionais no estilo de programação. A resposta mais votada não faz sentido / não captura a essência do problema.
nullé. "Missing" é apenas uma das várias interpretações possíveis de null. Outras interpretações válidas podem ser "Desconhecido", "Não aplicável" ou "Não inicializado". O que nullrepresenta depende da aplicação. Como a comunidade Python diria: "Diante da ambiguidade, recuse a tentação de adivinhar". Recusar manter nulo em um contêiner perfeitamente capaz de fazer isso seria apenas isso - um palpite.
nullmaioria de suas coleções).