11
在Java 8中,Stream类实现了AutoCloseable。这意味着应该明确关闭流实例。为什么Java 8 Stream类AutoCloseable?
我明白为什么文件处理程序和数据库连接是可以关闭的。但为什么流?
在Java 8中,Stream类实现了AutoCloseable。这意味着应该明确关闭流实例。为什么Java 8 Stream类AutoCloseable?
我明白为什么文件处理程序和数据库连接是可以关闭的。但为什么流?
我认为目前documentation/javadoc of Stream是相当清楚的:
流有BaseStream.close()方法和实施AutoCloseable, 但几乎所有的流实例也确实需要使用后不会被关闭 。通常,只有源数据流是IO通道的数据流(如Files.lines(Path,Charset)返回的那些数据流)需要关闭。 大多数流都由集合,数组或支持函数来生成,这些函数不需要特殊的资源管理。 (如果流 确实需要关闭,则可以将其声明为 试用资源语句中的资源。)