我有一个类似于静态常量的字段名称
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/