方法链接时尝试资源中的“资源从不关闭”

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 中修复,这可能是一个快速的胜利:)

【讨论】:

以上是关于方法链接时尝试资源中的“资源从不关闭”的主要内容,如果未能解决你的问题,请参考以下文章

303 响应正文中的超链接

将资源链接到另一个资源时使用 POST 路由

python 站点资源链接简易爬虫

OSGI 无法在运行时通过 JNI 链接到本机方法

wordpress 的本地主机:链接参考 css/js 文件的正确方法?

覆盖 Django admin 中的注销链接