泛型:當我們將乙個物件放入集合,集合不會記住此物件的型別,當再次取出時,該物件的變異型別為object,但其執行時型別仍然為其本身型別。強制轉換很容易出現classcastexception異常
listarraylist = new arraylist();
把引數string型別當成引數傳入容器,指定容器可以儲存的型別string
public class generic
public t getkey()
}
使用:
genericgenericinteger = new generic(123456);
t為引數型別的型別,此處t可以隨便寫為任意標識,常見的如t、e、k、v等形式的引數常用於表示泛型 為什麼要使用泛型?
出現原因 泛型是在jdk1.5新增的技術,其是為解決 通用性而出現的。例如 假設我現在要處理int string兩個型別的資料,其處理的邏輯是一模一樣,即除了型別不同,其他完全一樣。簡單的做法即 分別寫出int對應的處理 string 對應的處理 但是這個解決方案很蠢,那有沒有更好的解決方案呢?使用...
泛型 為什麼是泛型?
需求 先需編寫乙個程式,用棧 stack 進行進棧和出棧操作,並對棧中的元素進行運算。方案一 假設元素為int型別,則可使用 code class stack public void push int x public int pop 客戶 code class test 然而,現在需求發生變化。客...
java 為什麼要用泛型?
改用泛型可以增加可讀性和穩定性,無需強轉更便捷。比如說,list list new arraylist list.add new integer 0 integer x integer list.iterator next 上述,編譯器只能保證iterator返回的是object型別,為了保證對in...