day060:类型通配符的使用

55 篇文章 0 订阅
3 篇文章 0 订阅

目录

一、类型通配符

1.什么是类型通配符:

2.为了表示各种泛型List的父类,可以使用类型通配符

3.通配符的上下限


一、类型通配符

1.什么是类型通配符:

当声明一个方法时,某个形参的类型是一个泛型类或泛型接口类型,但是在声明方法时,又不确定该泛型实际类型,可以考虑使用类型通配符

2.为了表示各种泛型List的父类,可以使用类型通配符

  • 类型通配符:<?>
  • List<?>:表示元素类型未知的List,它的元素可以匹配任何的类型
  • 这种带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中

3.通配符的上下限

  • 类型通配符的上限:<? extends 类型>
  • 示例:List<? extends Number> :它表示的类型是Number或者其子类型

  • 类型通配符的下限:<? super 类型>
  • 示例:List<? super Number>:它表示的类型是Number或者其父类型

代码示例:

(1)类型通配符的使用:

/*一、类型通配符
1.什么是类型通配符:
当声明一个方法时,某个形参的类型是一个泛型类或泛型接口类型,但是在声明方法时,又不确定该泛型实际类型,可以考虑使用类型通配符

类型通配符:<?>
List<?>:表示元素类型未知的List,它的元素可以匹配任何的类型
这种带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中

*/
public class myGenericDemo_04 {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();//这个类型是String类型
        ArrayList<Integer> list2 = new ArrayList<>();//这个类型是Integer类型
        //当调用方法时,不确定到底写哪种类型,这时就用到了类型通配符
        printList(list1);
        printList(list2);
    }

    //传入参数(ArrayList<?> list)
    private static void printList(ArrayList<?> list) {

    }
}

(2)类型通配符的上下限:
 

public class myGenericDemo_05 {
    public static void main(String[] args) {
        //类型通配符
        List<?> list1 = new ArrayList<Object>();
        List<?> list2 = new ArrayList<Number>();
        List<?> list3 = new ArrayList<Integer>();

        System.out.println("-------------");
        //类型通配符的上限(这里上限类型是Number,所以可使用的类型是Number或其子类)
        List<? extends Number> list4 = new ArrayList<Number>();
        List<? extends Number> list5 = new ArrayList<Integer>();

        //类型通配符的下限(这里下限类型是Number,所以可使用的类型是Number或其父类)
        List<? super Number> list6 = new ArrayList<Object>();
        List<? super Number> list7 = new ArrayList<Number>();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZQyyds:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值