0

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

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)`

虽然字段是实例并且常量不是方法而且也是静态的

是误报声纳警告,我应该抑制的极端情况还是我的代码中存在真正的问题,我需要将常量移到类(或内部类)之外?

我发现此警告的其他误报,但已修复,生成器模式

S1845 不应该对返回同名字段的构建器和方法提出问题

4

1 回答 1

0

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

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

于 2020-03-30T12:20:21.400 回答