[英]Methods and field names should not differ only by capitalization (squid:S1845) false positive
我有一個類似於靜態常量的字段名稱
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)`
雖然字段是實例,常量不是方法,也是靜態的
是誤報聲納警告,我應該抑制的極端情況還是我的代碼中存在真正的問題並且我需要將常量移到類(或內部類)之外?
我發現此警告的其他誤報,但已修復, Builder 模式:
S1845 不應引發返回同名字段的構建器和方法的問題
在構建源代碼時它不會導致問題,因此從這個角度來看,您可以抑制它,但它可能會給開發人員/審查者帶來混亂,因此最好修復它(尤其是在使用自動完成功能時,盡管在這種情況下,字段是私有的...)。 也許對局部變量使用不同的命名模式。 不同的范圍也可以解決這個問題。
我還發現了他們試圖描述這一點的鏈接,盡管他們主要關注方法,並且“合規解決方案”與您分享的關於 BuilderPattern 的鏈接一致: https ://rules.sonarsource.com/java /標簽/混淆/ RSPEC-1845
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.