例子
一天,小吴和小范两个程序员来到了相亲会所找对象,相亲会所里面的美女让人眼花缭乱,极品御姐,大N萝莉,成熟少妇,纯朴素人,清纯学生妹,······
母胎单身的小吴哪里见过这么多美女,一时有点把持不住自己,什么类型的mm都想要,一时不知道该选择什么。
但是老实的小范有自己的原则,他从小就有一个梦想,那就是找一个成熟少妇作为女朋友,对其它类型没有任何反应。
服务员来询问两个人的意见时,
小吴说:我什么类型的都可以接受,让我再想一想。
小范告诉服务员:我只想要成熟少妇作为对象,其它类型统统都拒绝。
小范态度肯定,有自己的目标,老板就给他找了一个成熟少妇对象。
小范开心的走了
马上店就要打烊了,经过一番内心挣扎,小吴最终决定选择了一个大N萝莉,没想到因为小吴之前说来者不拒,什么类型都可以,老板就给他分配了一个纯朴的素人。
小吴没有见过市面,因为没有分辨的标准,稀里糊涂的就走了,
结果到了晚上,小吴发现这不是自己想要的大奶萝莉,心里有苦也说不出呀。
前面的都是开玩笑。例子可能不太恰当。
上面的例子中小范的标准就是一个简单的泛型,不是泛型的内容(成熟少妇)统统不要,没有泛型的小吴就吃了亏。
基本概念
泛型
泛型实现了参数化类型的概念,可以应用于多种类型。
泛型这个术语的意思是:“适用于许多许多的类型”。
主要作用:安全,提高重用率
优点:
- 类型安全
- 向后兼容
- 层次清晰
- 性能较高
简单泛型
促成泛型出现的一个比较重要的原因就是为了创造容器类。
使用Object
所有的类都默认继承自Object 类,可以使用
public class Holder2 {
private Object a;
public Holder2(Object a){
this.a = a;
}
public void set(Object a){
this.a = a;
}
public Object get(){
return a;
}
public static void main(String[] args) {
Holder2 h2 = new Holder2(new Automobile());
Automobile a = (Automobile)h2.get();
h2.set("Not an Automobile");
String s = (String) h2.get();
h2.set(1);
Integer x = (