黑马程序员_日记52_泛型限定初级使用

 ——- 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());
        }
    }
}

编译通过了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值