Java之Java7新特性之try资源句式

Posted beggar_1982

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之Java7新特性之try资源句式相关的知识,希望对你有一定的参考价值。

一、原来写法:

 1 static String readFirstLineFromFile(String path) throws IOException {
 2     BufferedReader br = null;
 3     try {
 4         br = new BufferedReader(new FileReader(path));
 5     } catch (Exception ex) {
 6         //do exception action
 7     } finally {
 8         if (br != null) {
 9             try {
10                 br.close();
11             } catch (Exception ex) {
12                 //do exception action
13             }
14         }
15     }
16 }

二、新写法:

 

1 static String readFirstLineFromFile(String path) throws IOException {  
2     try(  
3         BufferedReader br = new BufferedReader(new FileReader(path))  
4     ){  
5         return br.readLine();  
6     }  catch (Exception ex) {
7         //do exception action
8     }
9 }

三、备注:

1、新写法的代码更简洁清晰,从原来的16行代码减少到9行代码;

2、新写法是JDK 1.7及后续版本才支持的,在JDK 1.7版本以前是不支持的,并且try 里面的资源必须实现java.lang.AutoCloseable接口,这样它将被自动关闭,无论是程序正常结束还是中途抛出异常。

 

以上是关于Java之Java7新特性之try资源句式的主要内容,如果未能解决你的问题,请参考以下文章

java7新特性之Try-with-resources (TWR)

java7新特性之Diamond syntax

java7新特性之Diamond syntax

java7新特性之Simplified varargs method invocation

java 7新特性-TWR(Try-with-resources)

Java7的异常处理新特性addSuppressed()方法