📜  Java SE 9:改进的 try-with-resources 语句

📅  最后修改于: 2022-05-13 01:55:42.102000             🧑  作者: Mango

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);
        }
  
    }         
}