为什么 Java 没有众所周知的系统属性名称常量?

发布于 2024-07-17 23:49:06 字数 1431 浏览 8 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

烟酉 2024-07-24 23:49:06

System.getProperties() 是标准化的 - 每个 Java SE 实现都必须提供它们。 Java 7 没有理由不能为这些标准属性名称引入常量。 它不会阻止新属性的引入。 我认为只是没有人认为值得付出努力(我认为即使是对核心 Java API 的琐碎添加也必须经过流程)。

All the properties documented under System.getProperties() are standardised - every Java SE implementation must provide them. There is no reason that Java 7 could not introduce constants for these standard property names. It would not prevent the introduction of new properties. I think it's just no one has thought it worth the effort (even trivial additions to core Java APIs have to go through processes I think).

铁憨憨 2024-07-24 23:49:06

我的猜测是 Sun 不想承诺一组预定义的系统属性。 如果它们没有定义为内容,它们可以随时添加系统属性(即使它们只发布 JDK 的增量版本,例如从 1.4.1 到 1.4.2)。

编辑:
任何预定义常量都必须被视为 API 的一部分。 因此,即使改变常量的数量也是 API 的改变。 通过不定义任何常量,Sun 可以定义新的系统属性,而无需引入 API 更改。

My guess is that Sun did not want to commit to a predefined set of system properties. If they are not defined as contants they can add system properties at any time (even if they only release an incremental version of the JDK like from 1.4.1 to 1.4.2).

Edit:
Any predefined constants must be considered part of the API. Thus even changing the number of constants is an API change. By not defining any constants Sun is allowed to define new system properties without introducing an API change.

绝不放开 2024-07-24 23:49:06

为了完整起见,Apache commons lang具有 SystemUtils 类,提供常用常量和预定义方法。

这种情况已经存在好几年了,您很可能已经在使用 commons lang(2 或 3)。

SystemUtils.getUserHome();
SystemUtils.getJavaIoTmpDir();
SystemUtils.JAVA_IO_TMPDIR;
SystemUtils.USER_HOME;

For completeness, Apache commons lang has the SystemUtils class which provides common constants and predefined methods.

This exists since several years and chances are good you are already using commons lang (2 or 3).

SystemUtils.getUserHome();
SystemUtils.getJavaIoTmpDir();
SystemUtils.JAVA_IO_TMPDIR;
SystemUtils.USER_HOME;
随波逐流 2024-07-24 23:49:06

"literal"LITERAL 之间有什么区别?

两个字符:""

"literal" 也能正常工作时,不明白为什么还要发明一组复杂的 LITERAL

What's the difference between a "literal" and a LITERAL?

Two characters: " and ".

Can't see why bother inventing a complex set of LITERALs when "literal" works just as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文