閱讀586 返回首頁    go 人物


《數據結構與抽象:Java語言描述(原書第4版)》一JI1.1 泛型數據類型

本節書摘來華章計算機《數據結構與抽象:Java語言描述(原書第4版)》一書中的第1章 ,第1.1節,[美]弗蘭克M.卡拉諾(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 羅得島大學  新英格蘭理工學院 辛運幃 饒一梅 譯 更多章節內容可以訪問雲棲社區“華章計算機”公眾號查看。

JI1.1 泛型數據類型

泛型能讓你在類或接口的定義中寫一個占位符,而不是實際的類類型。占位符是泛型數據類型(generic data type),也可以簡稱為泛型(generic type)或類型參數(type parameter)。當定義一個其實例保存不同數據集合的類時,不需要給出這些集合中對象的具體數據類型。而是使用泛型數據類型替代實際的數據類型,定義一個泛型類(generic class),由客戶選擇集合中對象的數據類型。
如附錄B所提到的,類Object是所有其他類的最終的祖先。給定指向任意類型對象的一個引用,可以將這個引用賦給Object類型的變量。雖然可能試圖將Object用作泛型類,但不應該這樣做。而是應該使用泛型數據類型來表示任意的類類型。
假定有對象數組A。如果A的數據類型聲明為Object[],就可以將對象,比方說字符串,放到數組中。但是,沒有辦法阻止你將多個其他類的對象與字符串一起放到數組中。聽上去這或許挺吸引人的,但使用這樣的數組可能有問題。例如,如果從數組中刪除一個對象,你不知道它的動態類型是什麼。它是字符串還是某個其他類型的對象?不過,方法能獲取對象的動態類型,所以這樣的數組還是可以使用的。
相反,由泛型變量指向的項的數組或任何其他的組,可能僅含有因繼承而相關的類的對象。所以,使用泛型,可以限製集合中項的類型。這個限製很正常,因為它使得這些集合易於使用。

最後更新:2017-06-26 16:02:24

  上一篇:go  沉寂 22 年 386BSD 係統更新:開源係統鼻祖
  下一篇:go  《數據結構與抽象:Java語言描述(原書第4版)》一練習