2

我正在阅读 Effective Java 书,并在第 7 项:避免终结器部分中找到以下内容:

被引用为显式终止方法模式示例的四个类(FileInputStream、FileOutputStream、Timer 和 Connection)具有终结器,可在未调用其终止方法时充当安全网。不幸的是,这些终结器不会记录警告。API 发布后通常无法添加此类警告,因为它似乎会破坏现有客户端。

我的问题是如何?我能想象这应该发生的唯一方法是,如果客户端正在解析 java 进程的输出,而这些额外的警告可能会以某种方式破坏它们的解析。

这是否有不同的原因。

4

1 回答 1

0

其实,我想我知道为什么。书上说:

似乎会破坏现有客户

我认为这里暗示的是,到目前为止运行良好的客户端将突然开始发出警告消息,并且在随机时间发出警告消息,因为警告来自终结器方法。这会让客户看起来好像出了问题。

这里的关键是“出现”这个词。我想不出客户端逻辑实际上会因此而中断的情况,只是看起来会中断。

于 2013-02-16T15:32:58.260 回答