一句話,泛型的本質是引數化型別
乙個簡單的例子如下:
public
class
test
}class type
public t print()
}
在類type中,屬性data不事先指定型別,而是使用泛型
代替,這樣就可以為同乙個類宣告多種型別的屬性。
integer.getclass() == str.getclass()
的結果為true,可知編譯後,並不會因為多種型別就分別生成多個type類。
除了用於類,還可以用於方法。泛型方法的型別引數放在返回型別前面。
public
static
void
main(string args);
string str = ;
print(in);
print(str);
}public
static
void
print(t data)
<?>
代替具體的型別引數
public
class
test
public
static
void
print(type<?> type)
}class type
}
實際上,上述**中的type<?>
可以簡化為type
。
萬用字元的主要意義在於設定其上限和下限。
public
class
test
public
static
void
print(type<? extends number> type)
}class type
}
type<? super number>
與type<? extends number>
相反,表示只能是number的父類. java泛型筆記
泛型好處 提高安全性 將執行期的錯誤轉換到編譯期 省去強轉的麻煩 泛型基本使用 中放的必須是引用資料型別 泛型使用注意事項 前後的泛型必須一致,或者後面的泛型可以省略不寫 1.7的新特性菱形泛型 類內的方法最好與類的泛型一致,否則需要在方法上宣告該泛型 靜態方法必須宣告自己的泛型,它不能跟類的泛型是...
Java學習筆記 泛型
注 這裡只簡單介紹了一下泛型最基礎的使用,泛型功能很強大,為了趕課程,關於通用型別部分過後補上。別被我的筆記所誤導 課程中的泛型首先是由泛型集合開始入手的。由前邊的兩個集合arraylist和hashmap可以看出,在使用方便的同時也帶來了很多問題。1,效率低下,集合都是object的型別,使用是需...
java 泛型學習筆記
首先我對泛型的理解就是可以把任何object的子類當做類中的型別,下面是對於泛型的基本定義 public class generict public object getfoo 然後對於泛型 可以有兩個型別或者更多 public class generictt public void setfoo1...