居然還有這種寫法

無意中看到這種寫法,寫try catch。

public static void compressToZip(String sourceFilePath,  String zipFilename) {
        File sourceFile = new File(sourceFilePath);
        File zipFile = new File(zipFilename);
        try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))) {
            writeZip(sourceFile, "", zos);
            //文件壓縮完成後,刪除被壓縮文件
            boolean flag = deleteDir(sourceFile);
            LogUtil.w("刪除被壓縮文件[" + sourceFile + "]標誌:{}"+ flag);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e.getMessage(), e.getCause());
        }
    }

我第一蒙B是 try後面居然可以加括號(),而且還不報錯。
第一個反應是認爲這個程序員可能是C++轉過來的。代碼寫的很奇怪。
但是既然編譯不報錯,而且還可以運行,那麼這其中就有一定的小九九。所以果斷百度 Google 一下.找到如下文章:
java中帶參數的try(){}語法含義是什麼?

原來這是java 1.7的特性,這樣有利於我們關閉流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章