首先,為什麼會出現泛型。這個動機就是如果是型別錯誤,那麼在編譯的時候就會**獲,而不是執行時當作classcastexception在debug裡面出現,所以將型別的檢查從執行時移到編譯時,有助於找到程式中的錯誤,提高程式的可靠性。
泛型使用在3個地方,類、介面、方法的建立中,相對應的為泛型類、泛型介面、泛型方法。也就是說泛型是對於型別的通用性。不能將多型的概念混淆進來,二個沒有直接的關係,乙個是針對物件的,泛型是針對類的。
接下來是關於泛型概念的幾個例子,涵蓋了泛型的應用。
1.泛型類和泛型的構造
/**
* 泛型類
* * @author administrator
* * @param * name
* @param * age
*/public class person
public person()
public t getname()
public void setname(t name)
public v getage()
public void setage(v age)
@override
public string tostring()
}
2.泛型方法
/**
* p是傳入進來的,那麼在建立p物件的時候,已經有了具體的型別,那麼在這邊還不知道p中的型別,那麼用?去通配
* @param p
*/public static void function(person<?, ?> p)
泛型上限
/**
* 泛型上限
* @param p
*/public static void function(person<? extends string, ? extends integer> p)
泛型下限/**
* 泛型下限
* @param p
*/public static void function(person<? super string, ? super integer> p)
main函式
public static void main(string args)
3.泛型介面
public inte***ce dosomething結果
public class playimplements dosomething
public static void main(string args)
}
另一種寫法
public class play implements dosomething@override
public void dosomething(string t) }
java 自定義泛型 與 萬用字元的 理解例子
泛型 萬用字元 理解 可以引用任何型別 可以使用與引數化 無關的方法 上邊界 extends number 包括自己 下邊界 super integer 包括自己 自定義泛型 與 萬用字元的 理解 public class generictest2 public static void printc...
Java泛型的理解
t bean classbean class bean 單獨的t代表乙個型別,而class和class代表這個型別所對應的類 class在例項化的時候,t要替換成具體類 class它是個通配泛型,可以代表任何型別 受限統配,表示t的乙個未知子類。下限統配,表示t的乙個未知父類。package com...
Java基礎 泛型理解
先來看下這一段 public class test test public void test 泛型擦除,由於虛擬機器中沒有泛型型別的物件。無論定義何種泛型型別,都必須會有乙個原始型別,虛擬機器執行時會將型別變數擦除,並統一用object代替,從此變為乙個普通類物件。test public void...