天天看點

Java基礎:泛型

    java的泛型是什麼呢, 就是類型的參數化,這得類型包括方法參數和傳回值,也就是原本該是确定類型的地方換成了變量,把類型的确定時間向後延遲了。

    在之前,學過“重載”的概念,重載是什麼呢,舉例來說

    在上面的這個類裡的三個方法中有相同的處理邏輯,隻有參數類型不同。方法調用時程式會根據參數的類型調用相應參數的方法,這就是參數重載,讓類以統一的方式處理不同資料類型的手段。

那泛型和重載有什麼聯系呢?

    泛型和重載從不同的角度處理了多種資料類型的問題。泛型可以應用的更廣泛,可以用于方法、接口、類。那麼讓我們看看如何用泛型實作上面的test類呢?

    我們發現在泛型的應用中,我們用變量t代替了具體的類型參數,可以等到實際調用的時候在确定參數的類型,這樣大大減少了代碼的量,并且t可以是java中的任何類型(包括基本類型和對象類型)。其實這裡并沒有什麼新知識,隻是在函數的基礎上,把傳入資料和輸出資料(傳回值)的類型也參數化了。下面是一個方法的傳回值也是用泛型的例子:

其中get方法的傳回值也使用了泛型,是以應用就更加的靈活了。當然,以上代碼中用到的t,k,v都隻相當于變量名,用什麼字母代替都可以。