我想在方法链中使用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;
}
答案 0 :(得分:3)
这个怎么样?
HttpEntity entity = response.getEntity();
try (Scanner s = new Scanner(entity.getContent())) {
s.useDelimiter("\\A");
return s.next();
}
在方法链接版本(以及修订后的代码中)中,(EDIT)IDE认为(/ EDIT)JVM创建了两个Scanner对象。但是你可以忽略useDelimiter()的返回值(因为它只是同一个Scanner)。
如果你真的在方法链上出售,你可以试试这个
HttpEntity entity = response.getEntity();
try (Scanner s = new Scanner(entity.getContent())) {
return s.useDelimiter("\\A").next();
}
答案 1 :(得分:0)
在IntelliJ中,忽略useDelimiter()的输出没有帮助,但我发现它在Eclipse中有所帮助。在IntelliJ中,您可以在Settings>下配置从Scanner :: useDelimiter返回的实例。检查:)