Иоахим - тогда мы должны будем согласиться не соглашаться. Это говорит о том, что сегодня исключения NullPointerException происходят каждый день в производственном коде, и просто нет способа систематически справляться с этими «простыми ошибками в библиотеке». Формальная проверка, таким образом, чрезвычайно ценна для IMHO и, между прочим, сделает весь набор анализаторов кода излишним, поскольку они пытаются сказать вам кое-что, что компилятор должен вам сказать.
String myString = "this";
//string is immutable
myString.concat(" that");
//a new object is created but not assigned to anything
System.out.println(myString); //prints out "this"
предпочел ошибку времени компиляции - почему это не так? Тот же вопрос может быть применен к любому методу с типом возвращаемого значения, когда он вызывается без указания типа возвращаемого значения.
public myObject doStuff(...whatever){
//define my method
return anObject;
}
может быть вызван без предоставления ссылки / переменной для хранения возвращаемого типа:
MyObject newObject = doStuff(); //works
doStuff(); //works too without assigning return object