首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Checkstyle:如何解决"Hidden Field“错误

Checkstyle:如何解决"Hidden Field“错误
EN

Stack Overflow用户
提问于 2011-10-15 13:41:10
回答 6查看 94.9K关注 0票数 67

我得到了这个checkstyle错误:

代码语言:javascript
运行
复制
'serverURL' hides a field

在这里

代码语言:javascript
运行
复制
 private static void setServerURL(final String serverURL) {
    Utility.serverURL = serverURL;
 }

可能的原因是什么,如何解决它?

EN

回答 6

Stack Overflow用户

发布于 2011-10-15 13:46:38

已经有一个变量定义的serverURL可用于此方法(除了您正在接受的形参之外)。这就是所谓的“影子”。

我认为大多数Java程序员都忽略了这个检查,因为它实际上并不那么令人困惑。

例如,这将触发错误:

代码语言:javascript
运行
复制
public class Foo {
  private int bar = 0;

  public void someMethod(int bar) {
    // There are two bars!  All references in this method will use the parameter bar,
    // unless they are explicitly prefixed with 'this'.
    this.bar = bar;
  }
}
票数 58
EN

Stack Overflow用户

发布于 2015-04-26 22:57:39

我认为在构造函数和setter中,set字段名称与setter参数名称相同是很常见的。这就是我推荐这种配置的原因:

代码语言:javascript
运行
复制
<module name="HiddenField" >
    <property name="ignoreSetter" value="true" />
    <property name="ignoreConstructorParameter" value="true" />
</module>

这样,其他隐藏字段的情况仍然是被禁止的。

票数 48
EN

Stack Overflow用户

发布于 2012-10-18 18:17:07

参数和静态字段具有相同的名称。只需重命名其中一个即可。有些人遵循以p作为所有参数前缀的命名约定。然后,您将使用serverURL作为字段名,将pServerURL作为参数名。或者,您可以简单地关闭检查。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7776046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档