有没有人知道 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/