方法链接时,在资源尝试中“资源永不关闭”

时间:2015-12-04 05:40:04

标签: java java.util.scanner compiler-warnings try-with-resources

try(InputStream in = url.openStream(); Scanner scanner = new Scanner(in).useDelimiter("\\A")) {

} catch(IOException e) {
    e.printStackTrace();
}

该行

  

new Scanner(in)

发出警告:

Resource leak: <unassigned Closeable> value' is never closed

如果我删除useDelimiter(String)

,它就会消失

useDelimiter(String)不会返回新实例(它会返回this),为什么我会收到此警告?这是一个错误吗?

我正在使用Eclipse 4.4。我的问题与this无关,因为情况不同会发出警告

2 个答案:

答案 0 :(得分:0)

是的,这看起来像是泄漏检查器中的一个错误。我建议提交错误报告。最初的谷歌搜索似乎表明一个人不存在。

虽然我猜您可以声称无法正确解决此问题。问题是很难静态地证明useDelimiter在没有大量特殊外壳的情况下返回它。

答案 1 :(得分:0)

IntelliJ也有这个缺陷。对我来说,资源检查器似乎并不难以确定useDelimiter()返回 this 。所以我认为如果在IntelliJ和/或Eclipse中修复,这可能是一个快速的胜利:)