Java SE 9:改进的 try-with-resources 语句
在Java 7 或 8 中,如果资源已经在 try-with-resources 语句之外声明,我们应该使用局部变量重新引用它。这意味着我们必须在 try 块中声明一个新变量。让我们看一下解释上述参数的代码:
// Java code illustrating try-with-resource
import java.io.*;
class Gfg
{
public static void main(String args[]) throws IOException
{
File file = new File("/Users/abhishekverma/desktop/hello.txt/");
BufferedReader br = new BufferedReader(new FileReader(file));
// Original try-with-resources statement from JDK 7 or 8
try(BufferedReader reader = br)
{
String st = reader.readLine();
System.out.println(st);
}
}
}
在Java 9中,我们不需要创建这个局部变量。这意味着,如果我们有一个已经在 try-with-resources 语句之外声明为 final 或有效 final的资源,那么我们不必创建一个引用已声明资源的局部变量,该已声明资源可以在没有任何内容的情况下使用问题。让我们看一下解释上述参数的Java代码。
// Java code illustrating improvement made in java 9
// for try-with-resources statements
import java.io.*;
class Gfg
{
public static void main(String args[]) throws IOException
{
File file = new File("/Users/abhishekverma/desktop/hello.txt/");
BufferedReader br = new BufferedReader(new FileReader(file));
// New and improved try-with-resources statement in JDK 9
try(br)
{
String st = br.readLine();
System.out.println(st);
}
}
}