方法链接时尝试资源中的“资源从不关闭”
Posted
技术标签:
【中文标题】方法链接时尝试资源中的“资源从不关闭”【英文标题】:"Resource never closed" in try-with-resources when method chaining 【发布时间】:2015-12-04 05:40:04 【问题描述】:try(InputStream in = url.openStream(); Scanner scanner = new Scanner(in).useDelimiter("\\A"))
catch(IOException e)
e.printStackTrace();
线
新扫描仪(输入)
给出警告:
Resource leak: <unassigned Closeable> value' is never closed
如果我删除useDelimiter(String)
,它就会消失。
useDelimiter(String)
不返回新实例(它返回this
),那么为什么我会收到此警告?它是一个错误吗?
我正在使用 Eclipse 4.4。我的问题与this 无关,因为不同的情况会出现警告
【问题讨论】:
可能是eclipse的问题。检查此链接:help.eclipse.org/mars/…。 SE 中未回答相同类型的问题:***.com/questions/23459568/… 【参考方案1】:是的,这看起来像是泄漏检查器中的一个错误。我建议提交错误报告。最初的谷歌搜索似乎表明一个尚不存在。
虽然我猜您可能会声称无法正确解决此问题。问题是很难静态证明 useDelimiter 在没有大量特殊大小写的情况下返回 this。
【讨论】:
【参考方案2】:IntelliJ 也有这个缺陷。对我来说,资源检查器似乎一点也不难找出 useDelimiter() 返回 this。所以我认为如果在 IntelliJ 和/或 Eclipse 中修复,这可能是一个快速的胜利:)
【讨论】:
以上是关于方法链接时尝试资源中的“资源从不关闭”的主要内容,如果未能解决你的问题,请参考以下文章