未引用的扫描程序对象是否自动关闭



此问题与此问题重复,但如果可以关闭,则没有一个问题得到回答。

他们只提出了替代方案——使用try-with或实际使用类似Scanner scanner=new Scanner(System.in)的参考。

这让我认为无法关闭未引用的扫描仪对象,但。。。

问题:对象是否应该成为符合垃圾收集条件,从而最终关闭
(注意:我确实意识到依赖GC不是一个好主意(

查看OpenJDK源代码,Scanner不会覆盖finalize方法。这意味着最终收集对象时不会执行任何特殊代码,并且需要显式关闭它。

EDIT:
这可能是故意的,因为Scanner的一个常见用例是在System.in上使用它,您永远不应该关闭它。

相关内容

最新更新