Я обычно сталкиваюсь со следующей проверкой IntelliJ
private boolean bar() {
return foo().contains("foo"); // Method invocation 'contains' may produce 'java.lang.NullPointerException'
}
private String foo() {
return null;
}
Проверки кажутся мне подходящими, но одно из (или часто единственное) предложенное исправление от IntelliJ заключается в следующем:
private boolean bar() {
return Objects.requireNonNull(foo()).contains("foo");
}
Предупреждение исчезло. Но я не понимаю, как это помогает вообще? requireNonNull
просто выбросит тот же NullPointerException
, который был бы брошен в любом случае, когда .contains
был вызван на null
.
Обычно IntelliJ делает значимые предложения, и это обычное дело, так что я здесь упускаю суть?