“静态最终记录器”是否应以大写形式声明?

在Java中,静态最终变量是常量,约定是它们应该是大写的。但是,我看到大多数人以小写形式声明记录器,这在PMD中被视为违规。

例如:

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

只需在GoogleSO中搜索“静态最终记录器”,您就会亲眼看到这一点。

我们应该使用LOGGER来代替吗?


答案 1

记录器引用不是常量,而是最终引用,不应为大写。常量值应为大写。

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

private static final double MY_CONSTANT = 0.0;

答案 2

为了给 crunchdog 的答案增加更多价值,Java Coding Style Guide 在第 3.3 段字段命名中指出了这一点。

用作常量的字段的名称应全部大写,并用下划线分隔单词。以下被视为常量:

  1. 所有基元类型(请记住,所有接口字段本质上都是)。static finalstatic final
  2. 从不后跟“”(点)的所有对象引用类型。static final.
  3. 从不后跟 “”(左方括号)的所有数组。static final[

例子:

MIN_VALUE, MAX_BUFFER_SIZE, OPTIONS_FILE_NAME

遵循此约定,是第 2 点中所述的对象引用,但由于每次使用它时都跟 “”,因此不能将其视为常量,因此应为小写。loggerstatic final.