Я думаю, что нашел ложное положительное значение, используя аннотацию @Getter
от Project Lombok.SonarQube ложный положительный кальмар: S1450 для аннотированных полей @Getter (lombok)
В следующем примере класс получил предупреждение «Частные поля, используемые только в качестве локальных переменных в методах, должны стать локальными переменными» (squid:S1450
).
public class Example {
@Getter
private String exampleField; // <-- squid:S1450
public Example(final String value) {
setExampleField(value);
}
private void setExampleField(final String exampleField) {
this.exampleField = exampleField;
}
}
Может кто-нибудь подтвердить это? Является ли это ошибкой в правиле SonarQube или что-то не так с моим классом или с моим пониманием этого правила или аннотацией @Getter
?
Просто для полноты картины:
- проекта Ломбок аннотаций или сгенерированные методы правильно распознан в других правилах SonarQube. Поэтому я думаю, что моя настройка в порядке.
- Я также попытался поставить аннотацию
@Getter
на уровне класса, и я получил то же предупреждение. - Предупреждение отображается в SonarLint (в IntelliJ IDEA) и в веб-интерфейсе SonarQube. Поэтому я думаю, что это не ошибка при выполнении анализатора.
- Я связал SonarLint pluign в IntelliJ IDEA с нашим сервером SonarQube, и это удаленное соединение работает.
Я протестирована со следующими версиями:
- SonarQube 6,0
- SonarQube Java Plugin 4.2
- SonarLint (для IntelliJ IDEA) 2.3.2
- IntelliJ IDEA 2016.2.5
- Java 8