【问题标题】:Naming convention for constant objects JavaJava 常量对象的命名约定
【发布时间】:2014-04-23 10:55:52
【问题描述】:
对于常量基元类型和数据结构,如对象(字符串、基元的对象版本),约定似乎是用下划线分隔单词的全大写字母。这种约定是否适用于线程池之类的东西?
例子:
public static final int MAX_SPEED = 500;
public static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool();
【问题讨论】:
标签:
java
naming-conventions
【解决方案1】:
我不认为有任何这样的约定或规则。但是,是的,作为一种良好做法,人们会遵循您正在做的事情,即名称使用全大写并使用下划线分隔单词。
这种约定是否适用于线程池等事物?
是的,你可以关注这个。
来自 JLS:
6.8.5 常量名称
接口类型中的常量名应该是,final
类类型的变量通常可以是一个或一个序列
更多单词、首字母缩写词或缩写词,全部大写,带有组件
下划线“_”字符分隔。常量名应该是
描述性的,而不是不必要的缩写。按照惯例,他们可能
成为任何适当的词性。常量名称示例
包括类的MIN_VALUE、MAX_VALUE、MIN_RADIX和MAX_RADIX
字符。
我会说这完全是一个偏好问题。
【解决方案2】:
在 Java 中,constant 变量是使用“static final”修饰符声明的。并且此类变量必须仅包含 UpperCase 字符,并且必须使用 '_' 分隔多个单词。
1 static final char END_OF_FILE = 'e';
2 myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
创建约定只是为了提高代码的可读性。因此,您可以选择使用它们或离开它们。但如果你确实使用它们,你的代码会看起来很专业。 Java 编译器确实希望您使用这些约定。但是在某些语言中,您命名变量的方式会向编译器表明它是什么类型的变量。例如,在 Ruby 中,要声明一个常量变量,您必须只使用大写字母作为变量的整个名称。 Ruby 编译器仅以这种方式识别常量变量!
更多详情
Java naming convention for static final variables