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

Bla*_*ush 5 java java-stream

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

Ell*_*sch 5

根据Streamjavadoc

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

所以,听起来您需要使用try-with-resourcesStatement

  • 有什么原因,终端操作不会自动调用 close 吗?它们之后无法重复使用,因此无需保持打开状态。 (3认同)