我正在准备 SCJP 并观察到有趣的事情。
常量不遵循 Sun 命名约定:
File.separatorChar
File.separator
File.pathSeparatorChar
File.pathSeparator
如何解释?
也许,一些历史问题或只是打字错误?
最佳答案
从技术上讲,这些都不是常量(参见 constant expression 的定义)。常量的值在编译时已知。我相信带下划线的大写命名约定仅适用于实际常量,而不仅仅是任何 static final
字段。至于为什么它们不是常量,它们当然依赖于文件系统,必须在运行时查找当前文件系统。
(尽管如此,在 Java 代码中对所有 static final
字段使用相同的命名约定是很常见的,无论它们在技术上是否为常量。)
关于java - java.io.File 的静态最终字段的命名不标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759927/