Java SE 9 : Improved try-with-resources statements
In java 7 or 8 if a resource is already declared outside the try-with-resources statement, we should re-refer it with local variable. That means we have to declare a new variable in try block. Let us look at the code explaining above argument :
// 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); } } } |
In Java 9 we are not required to create this local variable. It means, if we have a resource which is already declared outside a try-with-resources statement as final or effectively final, then we do not have to create a local variable referring to the declared resource, that declared resource can be used without any issue. Let us look at java code explaining above argument.
// 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); } } } |
Contact Us