我想通过方法链接使用try- with -resources:
HttpEntity entity = response.getEntity();
try (Scanner s = new Scanner(entity.getContent()).useDelimiter("\\A")) {
String page = s.next();
return page;
}我在new Scanner(...)上收到“资源泄漏:永远不会关闭”
我可以解决这个问题(见下文),但它看起来有点过头了。有什么建议吗?
HttpEntity entity = response.getEntity();
try (
Scanner one = new Scanner(entity.getContent());
Scanner s = one.useDelimiter("\\A")
) {
String page = s.next();
return page;
}发布于 2015-12-23 09:09:58
这个怎么样?
HttpEntity entity = response.getEntity();
try (Scanner s = new Scanner(entity.getContent())) {
s.useDelimiter("\\A");
return s.next();
}在方法链接版本中(以及在修改后的代码中),(编辑)集成开发环境认为(/EDIT) JVM创建了两个扫描器对象。但是你可以忽略来自useDelimiter()的返回值(因为它就是同一个扫描器)。
如果你真的喜欢方法链接,你可以试试这个
HttpEntity entity = response.getEntity();
try (Scanner s = new Scanner(entity.getContent())) {
return s.useDelimiter("\\A").next();
}发布于 2016-06-28 20:10:05
在IntelliJ中,忽略useDelimiter()的输出没有帮助,但我看到它在Eclipse中有帮助。在IntelliJ中,您可以在设置>检查:下配置从扫描仪::使用分隔符返回的实例以忽略该实例。)
https://stackoverflow.com/questions/34426967
复制相似问题