博為峰Java技術題 ——JavaSE 泛型Ⅱ

博為峰小博老師:

[getClass()相同]

看一段代碼:

運行結果為:

這意味著,泛型是什么并不會對一個對象實例是什么類型的造成影響,所以,通過改變泛型的方式試圖定義不同的重載方法也是不可以的:

[盡量使用精確的類型定義泛型]

盡量使用精確的類型定義泛型,除非必要,否則不要寫一個接口或者父類上去:

就像這樣,list中的是一個Number類型,往里面添加的是Integer與Double,這樣導致get出來的元素也都是Number類型的,失去了子類擴展的功能。如果要讓子類變為Interger和Double也可以,(Integer)list.get(0)和(Double)list.get(1)強轉就可以了,但是這樣不就失去了泛型的意義了嗎?所以,盡量用精確的類型去定義泛型。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 開發人員在使用泛型的時候,很容易根據自己的直覺而犯一些錯誤。比如一個方法如果接收List作為形式參數,那么如果嘗試...
    時待吾閱讀 1,072評論 0 3
  • 對象的創建與銷毀 Item 1: 使用static工廠方法,而不是構造函數創建對象:僅僅是創建對象的方法,并非Fa...
    孫小磊閱讀 2,021評論 0 3
  • 我們知道,使用變量之前要定義,定義一個變量時必須要指明它的數據類型,什么樣的數據類型賦給什么樣的值。 假如我們現在...
    今晚打肉山閱讀 1,015評論 0 1
  • 我很心疼母親,她是從生下來就一直在為別人活著。 母親是家中老大,從小就肩負著老大的重擔和義務,從來享受不到老大的好...
    瑪格麗特MM閱讀 351評論 1 2
  • 杰弗里摩爾提出過高科技產品生命周期的理論,分為五個階段,一開始是那些技術的狂熱追隨者,然后產品就有一些早期使用者,...
    kafkaliu閱讀 229評論 0 0