IDEA-泛型通配符、泛型的上限、下限

泛型通配符:
当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符 < ?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。
通配符的基本使用
泛型的通配符,不知道使用什么类型来接收的时候,此时可以使用 ? ,表示未知通配符。


import java.util.ArrayList;
import java.util.Iterator;

/*
    泛型的通配符:
        ?:代表任意的数据类型
    使用方法:
        不能创建对象使用
        只能作为方法的参数使用

 */
public class Demo05Generic {
    public static void main(String[] args) {
        ArrayList<Integer> list01 = new ArrayList<>();
        list01.add(1);
        list01.add(2);

        ArrayList<String> list02 = new ArrayList<>();
        list02.add("a");
        list02.add("b");

        printArray(list01);
        printArray(list02);
    }
    /*
    定义一个方法,能遍历所有类型的Arraylist集合
    这时候我们不知道Arraylist集合使用什么数据类型
    所以可以使用泛型的通配符 ? 来接收数据类型。
    注意:
        泛型没有继承概念
     */
    public static void printArray(ArrayList<?> list){
        //使用迭代器遍历集合
        Iterator<?> it = list.iterator();
        while (it.hasNext()){
            //it.next()方法,取出的元素是Object,可以接受任意的数据类型
            Object o = it.next();
            System.out.println(o);
        }
    }
}

通配符高级使用-受限泛型
之前设置泛型的时候,实际上是可以任意设置的,只要是类就可以设置,但是在JAVA的泛型中可以指定一个泛型的上限下限
泛型的上限
格式:类型名称<? extend 类> 对象名称
意义:只能接受该类型及其子类

泛型的下限
格式:类型名称 < ? super > 对象名称
意义:只能接收该类型及其父类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值