SonarCube сообщает о ложном возможном исключении NullPointerException при использовании тернарного оператора - PullRequest
1 голос
/ 29 мая 2019

Я расскажу о потенциальных NPE, о которых сообщал анализ SonarCube.К моему удивлению, это не очень хорошо понимает троичный оператор.Я не хочу переписывать код, так как он используется в некоторых местах - есть ли способ заставить сканер Sonar знать об этом?

String input = null;
System.out.println(input == null ? "String is null" : input.length());

В приведенном выше примере жалобы Sonar на звонокк «input.length» как к чему-то, что может бросить NPE - но этого никогда не произойдет, потому что если input имеет значение null, будет напечатано сообщение «String is null», поэтому не пытайтесь разыменовать нулевой объект.

...