在Java中,静态final变量是常量,按照惯例它们应该是大写的。然而,我看到大多数人都用小写来声明记录器,这在PMD中是一种违反。
e.g:
private static final Logger logger = Logger.getLogger(MyClass.class);
只要搜索谷歌或“静态最终记录器”,你会看到这自己。
我们应该使用LOGGER吗?
在Java中,静态final变量是常量,按照惯例它们应该是大写的。然而,我看到大多数人都用小写来声明记录器,这在PMD中是一种违反。
e.g:
private static final Logger logger = Logger.getLogger(MyClass.class);
只要搜索谷歌或“静态最终记录器”,你会看到这自己。
我们应该使用LOGGER吗?
当前回答
为了给crunchdog的答案增加更多的价值,Java编码风格指南在3.3段字段命名中说明了这一点
作为常量使用的字段名称应该全部用大写字母,用下划线分隔单词。以下被认为是常量: 所有静态final基元类型(记住,所有接口字段本质上都是静态final)。 所有静态最终对象引用类型,后面永远没有“。”(点)。 所有静态最终数组后面永远没有“[”(开始方括号)。 例子: Min_value, max_buffer_size, options_file_name
按照这种约定,logger是第2点中所述的静态最终对象引用,但因为每次使用它时都跟在“。”后面,所以不能将其视为常量,因此应该小写。
其他回答
如果你的编码标准——如果你有的话——说它应该是大写的,那么是的。
我看不出任何严格的理由。我认为这完全取决于你个人的喜好。你公司的编码标准。
顺便说一句:我更喜欢“LOGGER”;-)
别忘了,PMD会尊重评论
// NOPMD
在里面。这将导致PMD跳过它的检查行,这将允许你选择任何你想要的样式。
常量通常是大写的。
然而,记录器不应该是静态的,而是在使用slf4j facade时查找包含类的每个“新”。这避免了web容器中一些讨厌的类加载器问题,而且它允许记录器框架根据调用上下文做一些特殊的事情。
为了给crunchdog的答案增加更多的价值,Java编码风格指南在3.3段字段命名中说明了这一点
作为常量使用的字段名称应该全部用大写字母,用下划线分隔单词。以下被认为是常量: 所有静态final基元类型(记住,所有接口字段本质上都是静态final)。 所有静态最终对象引用类型,后面永远没有“。”(点)。 所有静态最终数组后面永远没有“[”(开始方括号)。 例子: Min_value, max_buffer_size, options_file_name
按照这种约定,logger是第2点中所述的静态最终对象引用,但因为每次使用它时都跟在“。”后面,所以不能将其视为常量,因此应该小写。
记录器引用不是一个常量,而是一个最终引用,不应该是大写的。常量值应该是大写的。
private static final Logger logger = Logger.getLogger(MyClass.class);
private static final double MY_CONSTANT = 0.0;