Zastanawiam się, dlaczego java.util.ArrayList
pozwala to dodać null
. Czy jest jakiś przypadek, w którym chciałbym dodać null
do ArrayList
?
Zadaję to pytanie, ponieważ w projekcie mieliśmy błąd, gdzie niektóre kod został dodając null
do ArrayList
i trudno było dostrzec, gdzie był błąd. Oczywiście NullPointerException
wyrzucono a, ale dopóki inny kod nie próbował uzyskać dostępu do elementu. Problem polegał na tym, jak zlokalizować kod, który dodał null
obiekt. Byłoby łatwiej, gdyby ArrayList
wrzucił wyjątek w kodzie, w którym dodawano elementy.
null
jest to domyślny sposób reprezentowania brakujących danych w Javie, czy ci się to podoba, czy nie. W rzeczywistości wielu ludziom się to nie podoba i argumentuje to za funkcjonalnymi rzeczami w stylu programowania. Najbardziej pozytywna odpowiedź nie ma sensu / nie oddaje istoty problemu.
null
jest. „Brak” to tylko jedna z kilku potencjalnych interpretacji null
. Inne prawidłowe interpretacje mogą być „Nieznane”, „Nie dotyczy” lub „Niezainicjowane”. To, co null
reprezentuje, zależy od aplikacji. Jak powiedzieliby społeczność Python: „W obliczu dwuznaczności odmów pokusy zgadywania”. Odmowa trzymania wartości null w pojemniku, który jest w stanie to zrobić, byłaby tylko - zgadnij.
null
na większość swoich kolekcji).