Итак, у меня есть проблема с SonarLint, к которой я не знаю, как подступиться.
скажем, у меня есть класс с методом
public class Class(RemoteContext context)
RemoteContext context = context;
public void String method(String data) {
if(data == null)
context.raiseException("data can't be null");
//do stuff with data like data.get();
}
Когда я анализирую этот класс с помощью sonarLint (3.2.), я получаю, что нулевой указатель не должен быть разыменован.
Итак, мой вопрос. Как решить эту проблему? context.RaiseException
остановит выполнение метода, поэтому я думаю, что это ложное срабатывание.
Приложение имеет много случаев (классов/методов) с этой проблемой. Поэтому я думаю, что аннотации - это излишество (уродливый код повсюду). Я также мог бы набирать return после каждого вызова raiseException()
, но у меня сложилось впечатление, что это не «путь программистов».
Я предполагаю, что лучше всего было бы написать собственное правило.
Я просматривал темы и гуглил, но не нашел ничего полезного для этого случая, когда мне приходится делать «противоположное» тому, что на самом деле делает сонар. Не поднимая вопрос, а как бы «давая зеленый свет» методу?
Надеюсь, я достаточно ясно выразился по этому вопросу.
RemoteContext#raiseException
? - person T.J. Crowder   schedule 28.11.2017context.RaiseException
остановит выполнение метода: но sonarLint не может этого знать. - person Raedwald   schedule 19.08.2019