1. 程式人生 > >我們為什麼要使用泛型程式設計?誰想成為泛型程式設計師?

我們為什麼要使用泛型程式設計?誰想成為泛型程式設計師?

前言:泛型正是我們需要的,使用泛型機制編寫的程式程式碼要比那些雜亂地使用Object變數,然後再進行強制型別轉換的程式碼具有更好的安全性和可讀性。泛型對於集合類尤為有用,例如,ArrayList就是一個無處不在的集合類。

泛型程式設計(Generic programming)意味著編寫的程式碼可以被很多不同型別的物件所重用。例如:我們並不希望為聚集String和File物件分別設計不同的類。實際上,也不需要這樣做,因為一個ArrayList類可以聚集任何型別的物件。這就是一個泛型程式設計的一個例項。實際上,在Java增加泛型之前已經有一個ArrayList類,下面我們來研究泛型程式設計的機制是如何演變的。

1.型別引數的好處

在Java增加泛型前,都是通過繼承實現的。ArrayList類只維護一個Object引用的陣列:

public class ArrayList{
	private Object[] elementData;
	private Object get(int i){....}
	private void add(Object o){...}
}

這種方法有兩個問題。當獲取一個值時必須進行強制型別轉換。

ArrayList files = new ArrayList();
...
String filename = (String) files.get(0);

這樣一來沒有錯誤檢查,可以向陣列中新增任何物件,泛型提供了一個更好的解決方案,那就是型別引數

ArrayList類有一個型別引數用來指示元素的型別:

ArrayList <String> files= new ArrayList<String>();

如此就不需要進行強制型別轉換,編譯器就已經知道了返回型別為String,而不是Object。而且編譯器可以進行檢查,避免插入錯誤型別的物件。型別引數的魅力在於:使得程式具有更好的可讀性和安全性。

2.誰想成為泛型程式設計師

使用像ArrayList的泛型類很容易。我們大多數程式設計師都使用ArrayList <String> 這樣的型別,就好像它們已經構建在語言中,像String[]陣列一樣。但是,實現一個泛型類並沒有那麼容易。

對於型別引數而言,我們都希望在沒有過多的 限制和混亂的錯誤訊息的狀態下,做所有的事情。所以一個泛型程式設計師的任務就是預測出所用類的未來可能有的所有用途。

--------------如果大家喜歡我的部落格,可以點選左上角的關注哦。

相關推薦

我們為什麼使用程式設計成為程式設計師

前言:泛型正是我們需要的,使用泛型機制編寫的程式程式碼要比那些雜亂地使用Object變數,然後再進行強制型別轉換的程式碼具有更好的安全性和可讀性。泛型對於集合類尤為有用,例如,ArrayList就是一個無處不在的集合類。 泛型程式設計(Generic programming

一個程式設計師扔掉多少程式碼,才能成為真正的程式設計師

俗語說,女怕嫁錯郎,男怕入錯行。 程式設計師這行當,不貧不富,靠技術吃飯,一直還算個體面職業。進了程式設計師這行的兄弟們,即便日後飛黃騰達了,談起早年的程式設計生涯,都還是自豪的。 不過呢,程式設計師這個職業,有個挺悲哀的地方,那就是無效工作的佔比極高。 直接點說,程式設計師辛辛

所以你根本不成為一名程式設計師

我收到過很多來自職業程式設計師的郵件,他們在這個行業工作了一段時間,最終決定不幹這行了。最近收到這封: 我去年獲得了電腦科學學位,做了一年Java EE。我大學裡對需求工程和“管理知識”更興趣,但我們總要面對這樣一個事實:你往往被驅使成為一名程式設計師。 我喜歡程式設計本身。我做得不錯,我甚至比一

為什麼我不成為Web前端程式設計師

職位名稱並不代表技能集 作為一個前端開發人員,你是不是認為自己不需要懂很多技能?然而事實可能並非如此。 我在一個熱門的工作論壇就前端開發工作做了一個快速搜尋,發現有一個主題經常反覆出現,那就是成為中級/高階前端開發者需要什麼技能: (X)HTML(5)、C

成為一個真的程式設計師

最近看了 左耳朵耗子 寫的一段話: 所以,我和一些人開玩笑說,我們可能都是在寫一樣的 for(int i=0; i 程式設計師 當別人問我的職業時,我會驕傲的說:程式設計師。可是仔細想想感覺自己不是程式設計師。為什麼?並不是僅僅因為月薪沒上5萬,而是

成為Java頂尖程式設計師看這11本書

轉載地址:http://www.kuqin.com/shuoit/20160107/349896.html 學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。 個人認為看書有兩點好處:          &nbs

Web前端如日中天,成為優秀前端程式設計師的5個祕訣,你用了幾個?

近些年,越來越多的程式設計師轉移陣地,搞起前端開發。 有不少的Android開發的程式設計師直接轉到了前端開發。 而就拿JavaScript來說,就因前端流行使得它在各種程式語言排行榜上名列前茅。 那麼,如何做一名優秀、甚至卓越的WEB前端工程師? 雖然說小夥伴們的學習技巧各有差異,

20萬年薪的國企女員工讀研當程式設計師,網友:該不會是腦子有坑吧

現在的年輕人不比以前了,敢想敢做,不會像以前那樣“忍氣吞聲”。一名在國企工作的女網友就在網路上吐槽了自己目前的境遇與內心。其稱自己目前年薪20多萬,但工作很抓狂,雖然福利待遇很好,父母也很滿意自己的這份工作,但這不是她想要的生活,對目前工作的前景沒有一點興趣,所以打算辭職考研,出來後做演算法工程師,

性感又漂亮的女程式設計師大盤點,你以為程式設計師都是地中海嗎?

一般來講,我們說程式設計師大神的時候,都是說的程式設計師,很少有人去關注女程式設計師這個群體,從客觀上來講,女程式設計師確實不多,有因為有很多人都分析過,為什麼女程式設計師為什麼要比男程式設計師少,今天我們先來分析和盤點下知名的女程式設計師,給大家開開眼界! 第一位 開場王炸: &nb

java程式設計思想重點筆記(java程式設計師必看)

Java中的多型性理解(注意與C++區分) Java中除了static方法和final方法(private方法本質上屬於final方法,因為不能被子類訪問)之外,其它所有的方法都是動態繫結,這意味著通常情況下,我們不必判定是否應該進行動態繫結—它會自動發生。 fin

成為Java頂尖程式設計師,先過了下面問題!

一、資料結構與演算法基礎 說一下幾種常見的排序演算法和分別的複雜度。 用Java寫一個氣泡排序演算法 描述一下鏈式儲存結構。 如何遍歷一棵二叉樹? 倒排一個LinkedList。 用Java寫一個遞迴遍歷目錄下面的所有檔案。 二、Java基礎 介面與抽象類的區

成為Java頂尖程式設計師 ,看這9本書就夠了

“學習的最好途徑就是看書”,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點好處: 1.能出版出來的書一定是經過反覆的思考、雕琢和稽核的,因此從專業性的角度來說,一本好書的價值遠超其他資料 2.對著書上的程式碼自己敲的時候方便 “看

推薦《Clean Code》一書,讓你成為優秀的程式設計師

曾經維護過有十多年曆史的銀行系統,也全新開發過多模組的企業應用系統。經歷過各種各樣寫法的程式碼,有的難以維護,有的清晰明瞭,有的埋下深坑… 在我的團隊裡,我總是向新人灌輸程式碼整潔之道的思想,我時刻告訴他們,功能完成只是最基本的要求,更重要的是你能把程式碼

通過「刻意練習」,你才能成為頂尖的程式設計師

作家格拉德威爾在《異類》一書中指出: 人們眼中的天才之所以卓越非凡,並非天資超人一等,而是付出了持續不斷的努力。1萬小時的錘鍊是任何人從平凡變成超凡的必要條件。 他將此稱為「一萬小時定律」。 要成為某個領域的專家,需要10000小時,按比例計算就是:如果每天工

成為Java頂尖程式設計師 ,看這11本書就夠了

“學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點好處:   1.能出版出來的書一定是經過反覆的思考、雕琢和稽核的,因此從專業性的角度來說,一本好書的價值遠超其他資料   2.對著書上的程式碼自己敲的時候方便   “

書單推薦:成為Java頂尖程式設計師 ,看這11本書就夠了

“學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點好處: 1.能出版出來的書一定是經過反覆的思考、雕琢和稽核的,因此從專業性的角度來說,一本好書的價值遠超其他資料 2.對著書上的程式碼自己敲的時候方便 “看完書之後再次提升

成為Java頂尖程式設計師 ,看這10本書就夠了

“學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點好處:   1.能出版出來的書一定是經過反覆的思考、雕琢和稽核的,因此從專業性的角度來說,一本好書的價值遠超其他資料   2.對著書上的程式碼自己敲的時候方便   “看完書之後

025 -- 自找麻煩之 如何成為一個遊戲程式設計師

1.初級遊戲程式設計師的書籍 《Beginning C++ Through Game Programming》(這本書不僅教會你C++,還可以讓你入門遊戲程式設計。) 《3D 數學基礎》(這本有趣的書介紹了模擬和渲染3D世界所需的基本數學知識,涵蓋了理論知識和C++實現程

成為Java頂尖程式設計師 ,看這11本書就夠了

學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點好處: 1. 能出版出來的書一定是經過反覆的思考、雕琢和稽核的,因此從專業性的角度來說,一本好書的價值遠超其他資料 2. 對著書上的程式碼自己敲的時候方便 “

成為Java頂尖程式設計師,看這11本書就夠了

來源:程式設計師之家學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。