摘要:我們可以設計一個工具類,如下那么,在代碼塊中就可以這樣寫這些代碼都可以省略只需要下面這一行代碼就可以了是不是方便了很多呢這個工具類用到了可變參數,接口隔離的思想。
考慮這樣一種場景,你要為系統編寫一個下載文件并緩存到本地的功能,你會用到InputSteam和OutputStream類,你可能會這么寫:
InputStream is = null; OutputStream os = null; try { is = new FileInputStream(""); os = new FileOutputStream(""); //下載文件的代碼 //保存到本地的代碼 } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } if (os != null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } }
在finally代碼塊中,為了關閉兩個IO流居然寫了14行代碼,假如每次用到IO的時候都寫一大堆if……else,也挺煩的,有沒有什么辦法可以用一行代碼就搞定呢?查看InputStream和OutputStream抽象類源代碼,發現他們都實現了共同的接口Closeable,事實上,java中所有Stream類都必須實現這個接口,那么,這下就好辦了。
我們可以設計一個工具類,如下:
public class IOUtil { public static void close(Closeable... closeableList) { try { for (Closeable closeable : closeableList) { if (closeable != null){ closeable.close(); } } } catch (IOException e) { e.printStackTrace(); } } }
那么,在finally代碼塊中就可以這樣寫:
finally{ /* 這些代碼都可以省略 if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } if (os != null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } */ //只需要下面這一行代碼就可以了 IOUtil.close(is, os); }
是不是方便了很多呢?這個工具類用到了可變參數,接口隔離的思想。這樣寫代碼,不僅僅只是方便而已,代碼的可讀性也好了很多,不是嗎?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73068.html
摘要:下面圍繞的這樣的目的,即左右知乎網頁上屏幕截圖功能的實現前端掘金背景最近注意到知乎的屏幕截圖反饋功能,感覺非常不錯。正如你期望的,文中的闖關記之垃圾回收和內存管理前端掘金題圖來源,授權基于協議。 微信小程序實戰學習 起手式 DEMO 仿肯德基 - 前端 - 掘金小程序?大場景? 微信小程序本質上來說就是一個 HTML 5(移動網頁) 應用,用view、scoll-view代替了div標...
摘要:介紹是對于開發更便捷的開源迷你框架,包含工具類實用功能的集合,總包體積不到。你可以把想象成的瑞士軍刀不僅小,鋒利而且包含許多便利的功能。 showImg(https://segmentfault.com/img/remote/1460000015356940); Jodd介紹 Jodd是對于Java開發更便捷的開源迷你框架,包含工具類、實用功能的集合,總包體積不到1.7M。 Jodd構...
摘要:有個時候多人多協作開發過程中,會存在臨時修改的二方包,同樣版本需要重新拉取的情況。發現大部分人包括自己長久以來也是采用最原始的方法,一層層找到對應的目錄刪除對應的文件。某天實在是受不了了,寫了個小工具分享下,小代碼解決小問題。 有個時候多人多team協作開發過程中,會存在臨時修改的二方包,同樣版本需要重新拉取的情況。發現大部分人包括自己長久以來也是采用最原始的方法,一層層找到對應的目錄...
摘要:二來,給大家新開坑的項目一個參考。因此,本系列以主要以官方文檔為基礎,將盡可能多的特性融入本項目,并標注官網原文出處,有興趣的小伙伴可點擊深入了解。可以通過一些特殊協議例如將消息作為統一消息服務導出。下載完成后自行修改和。 開坑前言 我給這個專欄的名氣取名叫做小項目,聽名字就知道,這個專題最終的目的是帶領大家完成一個項目。為什么要開這么大一個坑呢,一來,雖然網上講IT知識點的書籍鋪天蓋...
摘要:探究系統登錄驗證碼的實現后端掘金驗證碼生成類手把手教程后端博客系統第一章掘金轉眼間時間就從月份到現在的十一月份了。提供了與標準不同的工作方式我的后端書架后端掘金我的后端書架月前本書架主要針對后端開發與架構。 Spring Boot干貨系列總綱 | 掘金技術征文 - 掘金原本地址:Spring Boot干貨系列總綱博客地址:http://tengj.top/ 前言 博主16年認識Spin...
閱讀 3033·2021-10-13 09:39
閱讀 1880·2021-09-02 15:15
閱讀 2439·2019-08-30 15:54
閱讀 1803·2019-08-30 14:01
閱讀 2602·2019-08-29 14:13
閱讀 1411·2019-08-29 13:10
閱讀 2731·2019-08-28 18:15
閱讀 3870·2019-08-26 10:20