这是我关于 SO 的第一个问题,我很困惑还没有类似的问题!
所以问题是:
为什么 try-with-resources 不能与字段变量一起使用?
或者换句话说:为什么我总是需要一个局部变量呢?
这里有一些示例代码:
public class FileWriteTest {
public FileWriter file;
public void workingDemo() {
try(FileWriter file = new FileWriter(new File("someFilePath")) {
// do something
} catch (IOException e) {
e.printStackTrace();
}
}
public void notWorkingDemo() {
file = null;
try(file = new FileWriter(new File("someFilePath")) {
// do something
} catch (IOException e) {
e.printStackTrace();
}
}
}
谁能解释一下为什么会有这个约定?