日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

try-with-resource语法

發(fā)布時間:2024/7/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 try-with-resource语法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

jdk1.7引入了一個語法叫try-with-resource語法,它的使用如下:

如果一個類實現(xiàn)了AutoCloseable接口,并行重寫close方法。
那么這個類就可以寫在try-catch的try后面的括號中,并且能在try-catch塊執(zhí)行后自動執(zhí)行這個方法。
舉例如下:

public class TryWithResource implements AutoCloseable {private int age = 18;@Overridepublic void close() throws Exception {System.out.println("this is close 方法");}public static void main(String[] args) {try (TryWithResource tryWithResource = new TryWithResource()) {System.out.println(tryWithResource.age);} catch (Exception e) {e.printStackTrace();}} }

執(zhí)行這個方法,我們看到打印結(jié)果:

18 this is close 方法

很明顯這樣寫和下面這種經(jīng)典寫法的效果是一樣的,只是看上去能更加簡便一些。

public class TryWithResource{private int age = 18;public void close() throws Exception {System.out.println("this is close 方法");}public static void main(String[] args) {TryWithResource tryWithResource = new TryWithResource();try {System.out.println(tryWithResource.age);} catch (Exception e) {e.printStackTrace();}finally {try {tryWithResource.close();} catch (Exception e) {e.printStackTrace();}}} }

這個經(jīng)典的寫法,是不是很熟悉,java編程中很多對于資源的操作,比如文件流等需要連接的資源,都需要在finally中手動關(guān)閉資源,但又怕關(guān)閉資源拋異常,所以最終就是finally塊中又加了try-catch塊,這個結(jié)構(gòu)確實怎么看怎么不得勁,但沒辦法,JDK1.7之前只能只樣寫。
但是在JDK1.7后,就可以通過接口的方式,優(yōu)雅的寫這些代碼了。

舉個例子:

默認的java.io.FileReader等類,已經(jīng)實現(xiàn)了這個接口了,所以我們在操作文件時,就可以直接用這種優(yōu)雅的方式來寫了,

詳見我的另一篇文章:java讀文件寫文件

總結(jié)

以上是生活随笔為你收集整理的try-with-resource语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。