Методы и имена полей не должны отличаться только заглавными буквами (squid: S1845) ложный положительный результат - PullRequest
0 голосов
/ 29 марта 2020

У меня есть имя поля, которое похоже на stati c constant

public static final String MAIL = "mail";
private String mail;

Я получаю предупреждение сонара:

`Methods and field names should not be the same or differ only by capitalization (squid:S1845)`

Хотя поле является экземпляром и константой, а не методом, а также stati c

Это ложно-положительное предупреждение гидролокатора, угловой случай, который я должен подавить, или есть реальная проблема в моем коде, и мне нужно переместить константу за пределы класс (или внутренний класс)?

Я обнаружил другие ложные срабатывания для этого предупреждения, но оно было исправлено, Шаблон Builder :

S1845 не должен вызывать проблему о построителях и методах, возвращающих одноименное поле

1 Ответ

0 голосов
/ 30 марта 2020

Это не вызовет проблем при создании исходного кода, поэтому с этой точки зрения вы можете его подавить, но это может создать путаницу для разработчика / рецензента, поэтому было бы лучше ее исправить (особенно при работе с автозаполнением). , хотя поле в этом случае закрытое ...). Может быть, использовать другой шаблон именования для локальных переменных. Это также исправит другая область.

Я также нашел эту ссылку, где они пытаются описать это, хотя они сосредоточены в основном на методах, и «Совместимое решение» соответствует ссылкам, которые вы поделились относительно BuilderPattern: https://rules.sonarsource.com/java/tag/confusing/RSPEC-1845

...