и много кода завязано на null или это невозможно проанализировать во время компиляции по каким-то причинам? Может быть что-то невозможно предсказать
Ну, ээ, естественно универсально предсказать невозможно, потому что для этого надо знать все конкретные вызовы (с конкретными значениями параметров) методов, которые произойдут, потому что иначе предсказать значение мутабельной величины в произвольный момент времени исполнения программы невозможно.
Исторически. В других JVM языках есть non-nullable types. Но и они не гарантируют NPE в runtime
А почему даже они не гарантируют? Из-за того, что не могут гарантировать отсутствие null в других jvm библиотеках?
Значение может прийти из вне, как пример по HTTP, при десериализации получится NULL
Тогда можно помечать такие объекты как nullable и требовать от программиста доказать что не null. Этого недостаточно?
Оно так и работает там, если помечаешь как NULLABLE -> тебя компилятор заставит обработать возможный null.
Обсуждают сегодня