泛型:在类、接口、方法上用“<>”来描述,表示一种类型,“<>”中写一种类型,不一定非是一种具体的类型,也可以使用任意字符代替,但此时仅仅表示一种类型。
作用:1、限定当前的数据类型;
2、简化代码
注意:1、jdk1.5之前没有泛型;
2、在jdk1.5后,规定在集合上必须使用泛型,否则会出现警告。
3、在集合中使用了泛型后,此集合就只能存在该类型;
4、使用迭代器遍历集合时,迭代器也需要加泛型;
5、不可以在static成员上使用;
6、泛型应用与方法的参数上时,那么代表传递的参数是什么类型,泛型就是什么类型;
优点:1、提高了程序的安全性;
2、将运行期遇到的问题转移到编译期;
3、省去了类型强转的麻烦(不使用泛型的集合不管数据是什么类型遍历出来的都是object类型);
4、泛型类的出现优化了程序设计。
缺点:集合本身能够存放多种类型数据的优点被屏蔽。
泛型可以使用通配符“?”:
例:
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
List<Integer> list2 = new ArrayList<Integer>();
list2.add(1);
list2.add(2);
list2.add(3);
//如果show方法中参数列表的泛型不用通配符,那么list和list2两种不同数据类型的集合就不可能同时使用show方法
show(list);
show(list2);
}
public static void show(List<?> list){
System.out.println(list);
}
}
注:通配符常用方法:
1、? extends E 代表类型是E类型或E的子类类型
2、? super E 代表类型是E类型或E的父类类型
==============================================
希望能与更多的java程序员共同学习
扣扣联系:2531977855