Java 9 Try With Resources 改善
Java 9 Try With Resources 改善
try-with-resources语句是一个try语句,具有一个或多个正式声明的资源。在这里,资源是一个对象,一旦不再需要它,就应该关闭它。try-with-resources语句确保每个资源在需求完成后关闭。任何实现java.lang.AutoCloseable或java.io.Closeable接口的对象都可以用作资源。
在Java 9之前,资源将在try或inside try语句之前声明,如下例所示。在这个例子中,我们将使用BufferedReader作为读取字符串的资源,然后关闭BufferedReader。
Tester.java
#Live Demo import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; public class Tester { public static void main(String[] args) throws IOException { System.out.println(readData("test")); } static String readData(String message) throws IOException { Reader inputString = new StringReader(message); BufferedReader br = new BufferedReader(inputString); try (BufferedReader br1 = br) { return br1.readLine(); } } }
输出
test
在这里,我们需要在try statement中声明一个资源br1,然后使用它。在Java 9中,我们不需要再声明br1了,下面的程序会给出同样的结果。
Tester.java
import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; public class Tester { public static void main(String[] args) throws IOException { System.out.println(readData("test")); } static String readData(String message) throws IOException { Reader inputString = new StringReader(message); BufferedReader br = new BufferedReader(inputString); try (br) { return br.readLine(); } } }
输出
test