And*_*wan 15 java api properties constants
所述java.lang.System中类定义了许多公知的特性.
例如,您可以通过查找"java.io.tmpdir"属性来获取JVM的临时目录:
... = System.getProperty("java.io.tmpdir");
Run Code Online (Sandbox Code Playgroud)
我不明白的是为什么这些属性没有被定义为常量(例如在java.lang.System类中).与使用文字字符串相比,这将更不容易出错.换句话说,我希望能够做到这一点:
... = System.getProperty(System.JAVA_IO_TMPDIR);
Run Code Online (Sandbox Code Playgroud)
任何想法为什么没有这样做?它甚至可以在未来的Java版本中添加,而不会破坏向后兼容性.还是我错过了一些明显的东西?
我的猜测是Sun不想提交一组预定义的系统属性.如果它们未定义为容器,则可以随时添加系统属性(即使它们仅发布JDK的增量版本,如1.4.1到1.4.2).
编辑:
任何预定义的常量都必须被视为API的一部分.因此,即使改变常量的数量也是API的变化.通过不定义任何常量,允许Sun在不引入API更改的情况下定义新的系统属性.
System.getProperties()下记录的所有属性都是标准化的 - 每个Java SE实现都必须提供它们.Java 7没有理由不能为这些标准属性名称引入常量.它不会阻止引入新的属性.我认为没有人认为值得努力(即使是对核心Java API的微不足道的补充也必须通过我认为的流程).
| 归档时间: |
|
| 查看次数: |
3118 次 |
| 最近记录: |