为什么不调用java.util.stream.Stream #close()?

时间:2014-08-06 19:32:51

标签: java java-stream

收集java.util.stream.Stream时,为什么不调用方法void close()

2 个答案:

答案 0 :(得分:4)

根据Stream javadoc

  

Streams有一个BaseStream.close()方法并实现AutoCloseable,但几乎所有流实例实际上都不需要在使用后关闭。通常,只有源为IO通道的流(例如Files.lines(Path,Charset)返回的流)才需要关闭。大多数流都由集合,数组或生成函数支持,不需要特殊的资源管理。 (如果流确实需要关闭,则可以在try-with-resources语句中将其声明为资源。)

所以,听起来你需要使用try-with-resources Statement

答案 1 :(得分:0)

你的意思是垃圾收集吗?

这意味着垃圾收集器必须了解它正在清理的对象。我不认为GC实施需要担心这个好主意。

作为开发人员,您在稀缺资源之后进行清理是您的责任。这就是try / finally诞生的原因。