收集java.util.stream.Stream
时,为什么不调用方法void close()
?
答案 0 :(得分:4)
Streams有一个BaseStream.close()方法并实现AutoCloseable,但几乎所有流实例实际上都不需要在使用后关闭。通常,只有源为IO通道的流(例如Files.lines(Path,Charset)返回的流)才需要关闭。大多数流都由集合,数组或生成函数支持,不需要特殊的资源管理。 (如果流确实需要关闭,则可以在try-with-resources语句中将其声明为资源。)
所以,听起来你需要使用try-with-resources
Statement。
答案 1 :(得分:0)
你的意思是垃圾收集吗?
这意味着垃圾收集器必须了解它正在清理的对象。我不认为GC实施需要担心这个好主意。
作为开发人员,您在稀缺资源之后进行清理是您的责任。这就是try / finally诞生的原因。