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");
}
Run Code Online (Sandbox Code Playgroud)
PS:警告是" 资源泄漏:'out'永远不会关闭 ".
这是误报.所有实例都已正确关闭.
我很久以前在Eclipse中关闭了那些与资源相关的警告.他们真的不可靠的,因为有那么多"显然是"正确的控制流动路径,不能确定为Eclipse的"正确的",而无需实际执行他们...任何不平凡的代码将注定有那些误报.
这肯定是误报,out正在分配out1或out2正在自动关闭。此外,out 在 try 块之外不可见。