為了使編寫的**可以被很多不同型別的物件重用。
例如,arraylist建立物件例項:
arraylistfiles = new arraylist(); //string 型別引數
乙個泛型類就是具有乙個或多個型別變數的類,pair類示例:
public
class pair
public
pair(t first, t second)
//public t getfirst()
public t getsecond()
//public
void
setfirst(t newvalue)
public
void
setsecond(t newvalue)
}
使用上面的泛型類:
//構造器
pair
<
string
>()
pair
<
string
>(string, string)
//方法
string getfirst()
string getsecond()
void setfirst(string)
void setsecond(string)
普通類中定義乙個泛型方法:
class arrayalg
}//使用上面的泛型方法,尖括號中放入具體型別
string middle = arrayalg.getmiddle("abc", "s", "123");
string middle = arrayalg.getmiddle(123, 456, 789);
基本格式dai:extends comparable>
想要乙個t所屬的類有comparableto方法的限定示例:
class
arrayalg
}
不能用基本型別例項化型別引數。沒有pair,只有pair。
執行時型別查詢只適用於原始型別:
if(a instanceof pair) //error
不能建立引數化型別的陣列:
pair table = new pair[10]; //error
不能例項化型別變數:
public pair()
不能丟擲或捕獲泛型類的例項:
public
class
problem
extends
exception //error
Java學習筆記 泛型
注 這裡只簡單介紹了一下泛型最基礎的使用,泛型功能很強大,為了趕課程,關於通用型別部分過後補上。別被我的筆記所誤導 課程中的泛型首先是由泛型集合開始入手的。由前邊的兩個集合arraylist和hashmap可以看出,在使用方便的同時也帶來了很多問題。1,效率低下,集合都是object的型別,使用是需...
java 泛型學習筆記
首先我對泛型的理解就是可以把任何object的子類當做類中的型別,下面是對於泛型的基本定義 public class generict public object getfoo 然後對於泛型 可以有兩個型別或者更多 public class generictt public void setfoo1...
JAVA 泛型 學習筆記
首先為了方便下面 的理解,這裡先提一下一些下面會用到的三個物件 person student和worker。person的屬性只有string型別的name和int型別的age,其他就是一些基本的方法 student和worker都是完全繼承person類,都沒有新的屬性 下面開始正題 泛型,字面上...