1

我正在准备 SCJP 并观察到有趣的事情。

常量不遵循 Sun 命名约定:

File.separatorChar
File.separator
File.pathSeparatorChar
File.pathSeparator

怎么解释?

也许,一些历史问题或只是错字?

4

1 回答 1

4

从技术上讲,这些都不是常量(请参阅常量表达式的定义)。常量的值在编译时是已知的。我相信带有下划线的大写命名约定仅适用于实际常量,而不仅仅是任何static final字段。至于为什么它们不是常量,它们当然是文件系统相关的,并且必须在运行时查找当前文件系统。

(不过,在 Java 代码中,对所有static final字段使用相同的命名约定是很常见的,无论它们在技术上是否是常量。)

于 2011-04-22T21:03:22.907 回答