java - 为什么 System.out 设计笨拙?

标签 java api

有没有人知道 java.lang.System.out 笨拙设计背后的动机?

尴尬:
首先,out 成员被暴露(封装任何人?)。
其次,它是 final 但可以通过 setOut() 更改(与 final 相矛盾)。

最佳答案

在 Java 1.0.x 中,System.out 和 friends 不是final——可以通过直接赋值给它们来改变它们。但是,当 Sun 决定在 Java 1.1(当时是针对 applet)中有选择地限制这种行为时,这就出现了问题。为了至少保持一定程度的向后兼容性,out 已确定并使用本地方法写入,并通过适当的安全检查进行包装。

关于java - 为什么 System.out 设计笨拙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/725291/

相关文章:

java - 设置文本颜色错误

java - 在ArrayList中找不到对象

c++ - 我应该通过传递冗余参数来避免隐式行为吗?

java - 选择性 API Javadoc

java - fillRect() 中的负数

java - 是否可以在条件内声明变量?

java - Google Firebase 退出并忘记 Google 帐户

azure - 将 Azure AD 身份验证集成到由 API 和 MVC 组成的现有项目时,我应该使用什么方法?

javascript - Nuxt : how to load data to store on app initialization

php - Paypal 请求不断收到 MALFORMED_REQUEST