java - 方法和字段名称不应仅因大小写而不同(squid :S1845) false positive

标签 java sonarlint false-positive field-names

我有一个类似于静态常量的字段名称

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 pattern :

S1845 should not raise issue on builders and methods returning the field with same name

最佳答案

在构建源代码时不会导致问题,因此从这个角度来看,您可以抑制它,但它可能会给开发人员/审阅者带来困惑,因此最好修复它(特别是在使用自动完成功能时) ,尽管在这种情况下该字段是私有(private)的...)。也许对局部变量使用不同的命名模式。 不同的范围也可以解决这个问题。

我还发现了这个链接,他们试图在其中描述这一点,尽管他们主要关注方法,并且“合规解决方案”与您共享的有关 BuilderPattern 的链接一致: https://rules.sonarsource.com/java/tag/confusing/RSPEC-1845

关于java - 方法和字段名称不应仅因大小写而不同(squid :S1845) false positive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60913712/

相关文章:

java - SonarQube,finally block 中的跳转语句(squid :S1143)

java - SonarQube 报告删除此表达式,其计算结果始终为 “true”

java - 播放生成的声音j2me

java - java中逻辑&的用法

java - Android如何为AsyncTask实现并行执行

java - SonarLint eclipse : Does it also analyze source code in "src/test"?

windows - 避免数据文件中的防病毒误报

ruby-on-rails-3 - Rspec 误报,因为在被测试的代码中拯救了失败异常

shell - Protractor - 如果失败则再次运行测试

java - weblogic ADF 中顽固/不合理的 java.lang.ClassNotFoundException,JAR 中的类