Цікаво, чому java.util.ArrayList
дозволяє додати null
. Чи є випадок, коли я хотів би додати null
до ArrayList
?
Я задаю це питання, тому що в проекті у нас з'явилася помилка, де якийсь код додався null
до, ArrayList
і важко було помітити, де ця помилка. Очевидно, що NullPointerException
було кинуто, але не до того, як інший код не намагався отримати доступ до елемента. Проблема полягала в тому, як знайти код, який додав null
об’єкт. Було б простіше, якби ArrayList
кинути виняток у код, куди додавали елементи.
null
це за замовчуванням спосіб представлення відсутніх даних на Java, хотіли ви це чи ні. Насправді багатьом це не подобається, і це робить аргументом для функціональних речей у стилі програмування. Відповідь, яка найбільше обґрунтовується, не має сенсу / не відображає суті питання.
null
є. "Відсутній" - лише одне з кількох потенційних тлумачень null
. Інші допустимі тлумачення можуть бути "Невідомими", "Не застосовуються" або "Неініціалізованими". Що null
представляє, залежить від програми. Як сказало б спільнота Python, "За умови неоднозначності відмовтеся від спокуси здогадатися". Відмова утримувати null у контейнері, який цілком здатний це зробити, було б лише цим - здогадкою.
null
у більшості своїх колекцій).