我正在准备 SCJP 并观察到有趣的事情。
常量不遵循 Sun 命名约定:
File.separatorChar
File.separator
File.pathSeparatorChar
File.pathSeparator
怎么解释?
也许,一些历史问题或只是错字?
我正在准备 SCJP 并观察到有趣的事情。
常量不遵循 Sun 命名约定:
File.separatorChar
File.separator
File.pathSeparatorChar
File.pathSeparator
怎么解释?
也许,一些历史问题或只是错字?
从技术上讲,这些都不是常量(请参阅常量表达式的定义)。常量的值在编译时是已知的。我相信带有下划线的大写命名约定仅适用于实际常量,而不仅仅是任何static final
字段。至于为什么它们不是常量,它们当然是文件系统相关的,并且必须在运行时查找当前文件系统。
(不过,在 Java 代码中,对所有static final
字段使用相同的命名约定是很常见的,无论它们在技术上是否是常量。)