天天看點

泛型--前世今生1、什麼是泛型?2、為什麼有泛型?泛型有什麼好處?3、什麼時候使用泛型?4、泛型的種類?

  泛型:任意的類型。是一種把明确資料類型的工作放在了建立對象或者調用方法時候進行的特殊的類型,一般隻應用在集合裡。

  泛型的格式:<資料類型>,舉例如下:

  為什麼有泛型:我們知道,數組隻能存儲一種資料類型;集合可以存儲任意類型的對象,但是我隻想讓我的存儲一種類型,不想讓其他類型存進去,怎麼解決呢?

  這時候就要用泛型了,泛型就是模仿數組限定存入資料類型而來的,在定義集合的時候,告訴集合,限定集合隻能存儲什麼類型的元素(如果不明确指定則預設是object類型)。以上面泛型舉例,arraylist<string> array = new arraylist<string>();就是限定集合array隻能存入string類型資料。

  泛型的好處:

    (1)解決了虛拟機黃色警告問題,因為如果不加泛型的話,虛拟機會認為存在因操作失誤存入非正常資料的可能,而報出黃色警告。

    (2)把運作期間的類型轉換異常提前到了編譯期間,定義泛型之後,如果存入非泛型規定類型資料,虛拟機會報錯而導緻編譯不通過。

    (3)優化程式設計,使得代碼更清晰。

  如果類或者接口後面有 < > ,那麼這就是泛型的展現。它就是要你在使用的時候明确類型,這時候就可以使用泛型了。

  泛型一般的用法有泛型類、泛型方法、泛型接口。

    顧名思義,泛型類就是把泛型定義在類上。舉例如下:

    定義成這樣,說明方法傳遞的參數必須和泛型類的類型一緻,這時候,泛型類的使用方法如下:

    從上邊可以知道,我們用泛型類可以使得泛型類的方法傳遞不同類型的參數(上面分别傳遞了string和integer類型),但是我們需要在泛型類和其方法上都加上泛型。那麼,我們能不能在調用方法的時候,才去明确類型呢?

    這就用到了泛型方法,泛型方法就是把泛型加在方法上。舉例如下:

    使用的時候:

    把泛型加在接口上。泛型接口有什麼特點呢?

    首先定義一個泛型接口:

    定義類實作這個接口:

  (1)在寫實作類的時候,已經知道接口上應該是什麼類型了,例如應該是string類型:

    調用方式:

  (2)在寫實作類的時候,不知道接口上應該是什麼類型:

  小結:泛型屬于新特性,是高新類技術,在很多方面多有用處。既可以規定必須用哪種類型,又可以代替方法重載,傳遞多種參數。

泛型--前世今生1、什麼是泛型?2、為什麼有泛型?泛型有什麼好處?3、什麼時候使用泛型?4、泛型的種類?