Mic*_*ons 6 java java-8 spring-data-jpa java-stream
在Spring Data JPA文档中它说的关于流:
Stream可能会包装底层数据存储特定资源,因此必须在使用后关闭.您可以使用close()方法手动关闭Stream,也可以使用Java 7 try-with-resources块.
请参阅:http://docs.spring.io/spring-data/jpa/docs/1.10.1.RELEASE/reference/html/#repositories.query-streaming
如果我使用forEach,计数或其他终端操作处理流,它应该已经关闭(并且不能再次重复使用),我不必将流包装在额外的try-resources-block中(假设我的块没有'扔任何异常),或者我错在这里?
man*_*uti 10
在的Java API描述如下这个话题:
Streams有一个
BaseStream.close()方法和实现AutoCloseable,但几乎所有的流实例实际上都不需要在使用后关闭.通常,只有源为IO通道的流(例如返回的Files.lines(Path, Charset))流将需要关闭.大多数流由集合,数组或生成函数支持,不需要特殊的资源管理.(如果流确实需要关闭,它可以在try-with-resources语句中声明为资源.)
另请注意以下API Files.lines(Path, Charset)):
返回的流封装了
Reader.如果需要及时处理文件系统资源,则应使用try-with-resources构造来确保close在流操作完成后调用流的方法.
底线是:如果流对应于资源,在正常情况下需要在使用后关闭(如IO),请在try-with-resources语句中使用它.
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |