【发布时间】:2015-08-19 01:09:03
【问题描述】:
从 try-with-resource 语句返回输入流以在调用者使用后处理流的关闭是否安全?
public static InputStream example() throws IOException {
...
try (InputStream is = ...) {
return is;
}
}
【问题讨论】:
-
一旦你退出函数执行,资源就会超出范围并因此被垃圾收集......总而言之......安全但无用......
-
@CoderNeji 除了你通常无法判断一个未引用的对象何时会被垃圾收集的部分之外,
InputStream是关闭,而不是垃圾收集(因为还有从方法返回的“实时”引用)。超出范围的是is变量,但这是在编译时解决的另一个问题。 -
感谢您的解释
标签: java return inputstream try-with-resources