Java中的非大写常量

时间:2010-02-19 11:46:10

标签: java naming-conventions constants

This question关于为什么Java中的常量按惯例大写,我试着想一下反例。

我至少可以想到一个(Double.NaN)。还有其他人吗?

6 个答案:

答案 0 :(得分:7)

当然,public final static PrintStream out(在java.lang.System.out中)。但这是一个非常好的例外,因为System.OUT.println只是丑陋。

此外,大多数时间记录器的初始化如下:

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

然而,在这两种情况下,这些都不是真正意义上的常量。所以也许我们可以做出区分:

static因为需要静态访问的字段而final因为它们不应在运行时重新分配,所以不一定是常量

答案 1 :(得分:4)

有很多serialVersionUID

ResultSetMetaData中的其他人,例如columnNoNullscolumnNullable ...
DatabaseMetaDataICC_Profile有很多混合大小写常量。

这是一个包含大多数JavaSE常量的列表:Constant Field Values

答案 2 :(得分:2)

来自java.awt.Color类的颜色常量,如黑色,红色,绿色等。

应该注意的是java.awt.Color还提供了这些常量的大写替代方案(例如BLACK,RED,GREEN等)。

答案 3 :(得分:2)

java.util.logging.Logger.global是一个全小写的常量

答案 4 :(得分:0)

nulltruefalse。它们可以说是关键字,但是当你得到它时,它们是常量,分别评估为0x00,0x01和0x00。

答案 5 :(得分:0)

数组实例的length

顺便说一句,我看到在一个方面提到的对象是“常量”的例子,即它们的引用没有改变 - 引用是最终的静态,但是当这些对象是活动的时候;即,当调用这些对象上的方法时,它们的内部属性会发生变化。在这些情况下,我不会使用UPPERCASE命名约定,因为在我的视图中对象不是常量。