2014-12-12 1 views
4

Использование плагина Eclipse Checkstyle Я вижу это ошибка:

Name 'logger' must match pattern '^[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);

Почему это предупреждение о контроле?

+2

Поскольку ваш CheckStyle настроен сделать это один? –

ответ

7

Потому что поле отмечено final и static, что означает, что оно является константой и должно быть названо прописными буквами.

От this link вы можете видеть, что модуль ConstantName имеет формат ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$, который является именно тем, который указал ваш плагин Checkstyle.

+0

Но 'LOGGER' должен быть' logger' с помощью соглашения об именах Java, так что это своего рода ошибка CheckStyle? см. Это [сообщение] (http://stackoverflow.com/questions/1417190/should-a-static-final-logger-be-declared-in-upper-case). – javaPlease42

+1

@ javaPlease42 Это зависит от того, как вы определяете константу. Я не думаю, что 'logger' является константой, поэтому да, правило не имеет смысла здесь. – manouti

+0

Если это статический финал, его следует рассматривать как константу, и он должен быть прописным с помощью соглашения об именах Java. – user2189998

1

документация рекомендует использовать эту конфигурацию, если вы хотите сохранить logger как допустимый вариант:

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

 Смежные вопросы

  • Нет связанных вопросов^_^