Поддерживает ли Sonar commons-lang StringUtils?
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
Env:
INFO: SonarQube Scanner 3.2.0.1227
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Linux 4.19.2-1.el7.elrepo.x86_64 amd64
Код Community Edition версии 7.6 (сборка 21501) для воспроизведения этой проблемы:
public class DetectorImport {
public String check1(Nonentity nonentity) {
String s;
if(nonentity == null) {
s = null;
}else {
s = nonentity.getName();
}
if(StringUtils.isNotBlank(s)) {
s = s.replaceAll("(", "(");
}
return s;
}
}
Из этой группы сонаров в Google упоминается, что методы common.langs поддерживаются сонаром.
https://groups.google.com/forum/#! Topic / sonarqube / aluTP63hfyA
Возможно, вы могли бы использовать другой подход к использованию других служебных классов, обычно используемых в Java проектах. В настоящее время мы поддерживаем методы из commons-lang StringUtils (v2 и v3), предварительные условия для гуавы и java 8 методов из java .util.Objects (nonNull, isNull, requireNonNull). Поскольку мы знаем, как ведут себя эти методы, мы можем правильно обрабатывать такие вызовы и отбрасывать похожие FP. Конечно, я не хочу заставлять вас использовать такие библиотеки, чтобы сделать анализатор счастливым. :)
изменение вышеуказанного кода на следующий действительно решает эту проблему:
public class DetectorImport {
public String check1(Nonentity nonentity) {
String s;
if(nonentity == null) {
s = null;
}else {
s = nonentity.getName();
}
if(s !=null) {
s = s.replaceAll("(", "(");
}
return s;
}
}
Приведенный выше вопрос скопирован с
https://community.sonarsource.com/t/commons-lang-stringutils-isnotblank-method-still-raise-npe/21517
Я не ОП в Сонаре, но я предоставил свое решение там. У меня был точно такой же вопрос, поэтому я копирую решение другим, кто здесь оказался.