——- android培训、java培训、期待与您交流! ———-
泛型的限定
本例主要演示:
1 泛型限定的由来
2 泛型限定的基本类型
? 通配符
泛型限定思路
1 为了提高代码的复用性
下面这个例子可以发现,
如果想要用迭代器取出元素,
就必须使用两个迭代器
代码的复用性不高。
–单独定义一个方法打印,使用通配符
一、泛型没有限定
import java.util.*;
class GenericDemo6
{
public static void main(String[] args)
{
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
ArrayList<Integer> al1 = new ArrayList<Integer>();
al1.add(4);
al1.add(7);
al1.add(1);
printColl(al);
printColl1(al1);
}
public static void printColl(ArrayList<String> al)//ArrayList<String> al = new ArrayList<Integer>();这个是无法接受的,错误
{
Iterator<String> it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next().toString());
}
}
public static void printColl1(ArrayList<Integer> al)
{
Iterator<Integer> it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next().toString());
}
}
}
编译没通过
二、泛型使用了通配符
import java.util.*;
class GenericDemo6
{
public static void main(String[] args)
{
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
ArrayList<Integer> al1 = new ArrayList<Integer>();
al1.add(4);
al1.add(7);
al1.add(1);
printColl(al);
printColl(al1);
}
public static void printColl(ArrayList<?> al)
{
Iterator<?> it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next().toString());
}
}
}
编译通过了