java基礎---泛型

來源:互聯網
上載者:User

標籤:href   ref   工作   http   tcl   位元組   基礎   換工作   ===   

http://blog.csdn.net/sunxianghuang/article/details/51982979泛型設計的初衷就是為了減少手動的類型轉換工作===為什麼需要泛型?沒有泛型之前通用程式是如何設計的呢?泛型的目的就是減少強制類型轉換出現的錯誤。如果沒有泛型,比如一個集合就存法了兩種元素Integer整數類型和字串類型String類型。因為所有對象都是Object類的子類,這個時候你取出一個元素,你以為他是整數類型你強制類型轉換,但是他是字串類型這個時候就會拋異常ClassCast類型轉換異常。而且這種異常是運行時異常還不是編譯時間異常,所以是我們不願意看到的。所以引入泛型,由編譯器在編譯時間期進行強制類型轉換,避免我們手動類型轉換可能出現的錯誤,比如剛剛的集合如果泛型是整數類型,添加string類型的話編譯的時候就會出錯。   ===泛型是什麼時候開始工作的?解釋一下java泛型擦除編譯的時候進行工作,編譯的時候看到型別參數進行泛型擦除,插入強制類型轉換的指令。定義兩個ArrayList<String>和ArrayList<Integer>類型的集合arrayString和arrayInteger,當比較兩個集合的類型的時候會發現類型是一樣的。arrayString.getClass()==arrayInteger.getClass()在編譯期的時候會發生類型擦除,都會變成ArrayList類型。原始類型就是在類型擦除之後在位元組碼中真正的類型。   

java基礎---泛型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.