前言
明晰Java泛型作用!
一、泛型是什么?
泛型:是JDK5.0后推出的新特性,主要目的是统一集合中存储的元素类型
,解决了
引用对象使用子类方法大量向下转型的问题。
特点:在程序编译阶段起作用
缺点:因为泛型确定了存储类型,集合中就只能存储泛型所声明的类型,所以泛型导致集合中存储的元素缺乏多样性
(不过无伤大雅
,在工作中一般情况下,集合中存储的类型都是统一
的)
二、使用步骤(代码)
public class Test01 {
public static void main(String[] args) {
//使用泛型
List<Animal> myList = new LinkedList<>();
Cat c = new Cat();
Dog d = new Dog();
myList.add(c);
myList.add(d);
//获取迭代器
Iterator<Animal> it = myList.iterator();
while (it.hasNext()) {
Animal a = it.next();
//调用子类型特有的方法还是需要向下转换
if (a instanceof Cat) {
Cat x = (Cat)a;
x.catchMouse();
} else { a.doSome(); }
}
}
}
class Animal{
public void doSome(){
System.out.println("父类:泛型无需向下转型,除非是子类");
}
}
class Cat extends Animal{
public void catchMouse(){
System.out.println("子类:猫抓老鼠!");
}
}
class Dog extends Animal{}
代码运行结果
结论:父类泛型无需向下转型,除非是子类