如您所知,JAVA SE7具有完善的尝试资源功能,我已尝试在我的应用程序中实现。
这是一个问题:
try(FileOutputStream fos = new FileOutputStream(path)){
//........ some code
fos = new FileOutputStream(newPath); // Getting Error!
}
我的ide(IntelliJ IDEA)给了我这个错误“无法初始化最终变量fos”
如果我不使用尝试资源功能,那么没有问题,那么我应该如何使用try资源重新启动fos?
答案 0 :(得分:4)
你不能,因为这个语法糖也声明资源引用为final。这是有道理的,因为整个点是参考将在块的末尾关闭。如果您可以自由地丢失块中的引用,它会有多大用处?
意思是,几乎肯定有一种不同的,更好的方式来表达你想要的东西。也许你正在循环你打开的资源。每个都应该打开和关闭。您可以在内部try-catch中执行 。