【问题标题】:Resolve Java Checkstyle Error: Name 'logger' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'解决 Java Checkstyle 错误:名称 'logger' 必须匹配模式 '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'
【发布时间】:2015-02-11 14:55:22
【问题描述】:

使用 Eclipse Checkstyle 插件我看到这个错误:

名称“记录器”必须匹配模式'^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'

我通过更改解决了这个错误:

private static final Logger logger = Logger.getLogger(someClass.class);

private static final Logger LOGGER = Logger.getLogger(someClass.class);

为什么这是一个检查样式警告?

【问题讨论】:

  • 因为您的 CheckStyle 已配置为使其成为一体?
  • @ChrisHayes 真的!

标签: java eclipse constants checkstyle


【解决方案1】:

如果您希望将logger 保留为有效选项,documentation 建议使用此配置:

<module name="ConstantName">
  <property name="format"
    value="^log(ger)?$|^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
</module>
    

【讨论】:

    【解决方案2】:

    因为该字段被标记为finalstatic,这意味着它是一个常量,应该用大写字母命名。

    this link,您可以看到模块ConstantName 的格式为^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$,这正是您的Checkstyle 插件指定的格式。

    【讨论】:

    • 但是 LOGGER 按照 Java 命名约定应该是 logger 所以这是一种 CheckStyle 错误?看到这个post
    • @javaPlease42 这取决于你如何定义一个常量。我不认为logger 是一个常数,所以是的,这个规则在这里没有意义。
    • 如果它是 static final 那么它应该被认为是一个常量,它应该是 Java 命名约定的大写。
    猜你喜欢
    • 2012-10-22
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2015-01-07
    • 2019-05-31
    • 2010-12-11
    • 2021-11-09
    • 2011-11-09
    相关资源
    最近更新 更多