Eclipse给出了关于“out”声明的警告。这是误报吗?
Random r = new Random();
try(PrintWriter out1 = new PrintWriter("one.txt");
PrintWriter out2 = new PrintWriter("two.txt"))
{
PrintWriter out = r.nextBoolean()?out1:out2;
out.println("x");
}
P.S。:警告是“资源泄漏:'out'永远不会关闭”。
答案 0 :(得分:5)
这是误报。所有实例都已正确关闭。
很久以前我在Eclipse中关闭了那些与资源相关的警告。它们真的不可靠,因为有很多“明显”正确的控制流路径,Eclipse无法在没有实际执行的情况下被识别为“正确”......任何非平凡的代码都注定会产生这些误报。 / p>
答案 1 :(得分:1)
绝对是误报,out
被分配out1
或out2
,自动关闭。此外,在try block外面看不到。