如何正确使用List<?>

      List<?>这种语法很奇怪,是什么意思?

      Java中把一个(?)称为类型通配符。为了表示各种泛型List的父类,可以使用List<?>,意思是元素类型未知的List,它的元素类型可以匹配任何类型。先看看下面这段代码:

public void test(List<?> c)
{
    for(int i=0;i<c.size();i++)
    {
        System.out.println(c.get(i));
    }
}

         现在可以使用任何类型的List来调用它,程序依然可以访问集合c中元素。

 

        但这种带通配符的List仅表示它是各种泛型List的父类,并不能把元素加入其中,例如,下面的代码会引起编译错误。

List<?> c = new ArrayList<String>();
//下面程序引起编译错误
c.add(new Object());
        因为程序无法确定c集合元素的类型,所以不能向其中添加对象。
 
        上面两个小例子说明了List<?>的正确使用和错误使用两种情况。简单一句话: 可以使用get访问元素,但不能使用add添加元素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值