在Java 9中的try-with-resources中有效的最终变量?
在TrywithResource语句中使用的任何变量都需要在Try语句中声明,直到Java8版本。从Java9开始,此限制已删除,并且在Try块内使用了任何最终或有效的最终变量。实际上,final表示变量一旦初始化就无法更改。
示例
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class EffectivelyFinalTest { private static File file = new File("try_resources.txt"); public static void main(String args[]) throws IOException { file.createNewFile(); BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); try(bufferedReader) { System.out.println("可以在尝试资源时使用最终或有效最终!"); } finally { System.out.println("In finally block"); } } }
输出结果
可以在尝试资源时使用最终或有效最终! In finally block