泛型
一:泛型問題引出
泛型解決類型的轉換問題 , object類雖然可以接受所有的類型 , 但是向下轉型並不安全 , object往往由於接受數據 , 卻不合適取出數據 。 所以出現了可以接受所有數據類型的泛型 , 用來結束所有的類型 。
二:泛型實現
泛型在類定義或者接口定義的時候使用,程序編譯的時候完全不知道這個是什麼類型,泛型所具體的實現數據類型由使用者在寫程序的時候決定(T寫成想要的數據類型)。
<T>是一個佔位(泛型聲明)的標記
三:通配符(重點)
在程序類中追加了泛型避免了類轉換的錯誤 , 但是泛型的不同數據類型實現在使用時也會因爲泛型數據類設置而顯得繁瑣錯誤。
通配符解決了泛型不同具體實現的數據類型的不匹配問題<?> ?就是通配符,接受了所有的數據類型 。
在通配符在使用時,可以無問題按照當前的數據類型實現取出,卻不可以修改。
“?”有兩個子通配符:(瞭解不作要求)
?extends類 。設置泛型上限?extends Float
?super類 。 設置泛型下限?super Stringeclipse的一個快捷鍵 。 CTRL + 1自動聲明一個局部變量。
四:泛型接口
泛型不止出現在類中也可以定義接口兩種實現泛型接口的方法:
在子類定義的時候繼續使用泛型
在子類使用接口的時候明確使用數據類型
五:泛型方法
在類和接口的泛型定義後,在其內部也可以繼續使用泛型。該方法稱之爲是泛型方法。
泛型方法不一定定義和接口中,單獨定義泛型方法也可(加一個泛型聲明(<T>)即可)
不建議使用泛型方法