對java泛型的認識。

2021-07-10 11:58:46 字數 707 閱讀 6935

泛型是jdk1.5以後出現的新的機制,可以將型別異常在編譯時期被發現。

那麼什麼時候用到它呢?

泛型分為:泛型定義在類上,定義在方法上,定義在靜態方法上,定義在介面上。

定義在類上時:一般是某類變數在此類中多處被用到,但不確定型別。

定義在方法上:一般是形參型別不確定。

定義在介面上:與定義在類上意義相似,子類在實現或者繼承其時分兩種情況:1.子類也不確定其具體型別。那麼子類適當位置也要加上此泛型的限定符。2.子類確定了此型別,那麼在繼承的介面或者類後面直接寫上確定型別的限定。

還有乙個是叫:泛型限定。

? extends e / ? super e

這兩個代表什麼意思呢?e是開始時在建立某一帶有泛型限定的物件時確定的乙個值,在之後呼叫其他帶有此限定的類的方法時,就表示,這個含有限定的位置可以寫e或者e的子類/e或者e的父類。

最後乙個是乙個小問題:就是說為何泛型不能這樣寫:arraylistarray = new arraylist(); 或者:arraylistarray = new arraylist();

結論當然是兩邊只能寫同樣型別,或者用剛才說的泛型限定去寫。但是如果寫的是確定型別的話,不能像這麼寫:原因就是,接收端集合只想要接收student,但是new的是可以person的集合,甚至還可以接收teacher這樣的物件,這就出了問題,不可以;同樣,接收端要person,但是這個集合卻只能接收student,範圍變小了,不可以。

泛型簡單認識

自定義范型宣告的位置 public t a t t 也可以直接在類上進行宣告。public calss demo6 當使用靜態方法是,類中的宣告有的情況下,依然需要在方法中單獨宣告。publlic static void c t t public class stringfoo public str...

泛型初認識

資料型別是每乙個程式設計人員都要認真研究的知識,這篇文章就來介紹一下菜鳥了解資料型別的 心酸 歷程。從開始接觸程式語言就有了資料型別,諸如int string boolean time float double 慢慢地有認識了實體型別,還有就是接下來的各種集合類。不管怎麼講他們都是由object型別...

泛型的初步認識

在實際的開發中,對於資料一致化的要求是比較重要的 例如 arraylist list new arraylist 構建了乙個容器 int arr new int 10 如果對將要儲存到arraylist中的資料型別沒有進行約束的話,就會導致容器裡放了各種型別的資料。那麼取資料時,就可能需要強制型別轉...