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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java中带参数的try(){}语法含义是什么?

發布時間:2024/5/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中带参数的try(){}语法含义是什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 7簡化資源清理(try-with-resources)自動關閉資源的try語句

?

自動關閉資源格式:

try( )//此處多了圓括號,()圓括號內寫打開資源的代碼,在這里創建的對象必須實現Autocloseable接口

{

IO操作

}

catch(){

處理異常的代碼

}

?

?

帶資源的try語句(try-with-resource)的最簡形式為:

?
  • try(Resource res = xxx)//可指定多個資源

  • {

  • work with res

  • }

  • try塊退出時,會自動調用res.close()方法,關閉資源。

    ?

    PS:在coreJava第9版的第一卷的486頁有解釋。



    作者:今天
    鏈接:https://www.zhihu.com/question/41523613/answer/206317795
    來源:知乎

    著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

    ?

    ?

    ?

    ?

    作者:斯巴拉西
    鏈接:https://www.zhihu.com/question/41523613/answer/91339059
    來源:知乎
    著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
    ?

    挺好用的語法,不用寫一大堆finally來關閉資源,所有實現Closeable的類聲明都可以寫在里面,最常見于流操作,socket操作,新版的httpclient也可以;
    需要注意的是,try()的括號中可以寫多行聲明,每個聲明的變量類型都必須是Closeable的子類,用分號隔開.樓上說不能關兩個流的落伍了

    ===
    補充一下,在沒有這個語法之前,流操作一般是這樣寫的:

    ?
  • InputStream is = null;

  • OutputStream os = null;

  • try {

  • //...

  • } catch (IOException e) {

  • //...

  • }finally{

  • try {

  • if(os!=null){

  • os.close();

  • }

  • if(is!=null){

  • is.close();

  • }

  • } catch (IOException e2) {

  • //...

  • }

  • }

  • 而現在你可以這樣寫:

    ?
  • try(

  • InputStream is = new FileInputStream("...");

  • OutputStream os = new FileOutputStream("...");

  • ){

  • //...

  • }catch (IOException e) {

  • //...

  • }

  • 生活一下就美好了

    總結

    以上是生活随笔為你收集整理的java中带参数的try(){}语法含义是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。