泛型(4)——泛型的上下限

一、引入:
1、需求:定义一个函数可以接收任意类型的集合对象。
2、思路:因为这几天一直在学习泛型,尤其是自定义泛型,所以最先我的想法就是使用自定义泛型。

public class Demo8 {

    public static void main(String[] args) {
        //但是发现使用自定义泛型与需求不符,使用自定义泛型传入String类型也是可以的,而需求是任意类型的集合对象。
        print("abc");
    }

    public static <T>void print(T t){

    }
}

3、改进

二、泛型的上下限:
1、泛型中的通配符: ?
泛型中的通配符一般不单独使用,基本都是结合泛型的上下限来使用的!

2、需求:

需求一: 定义一个函数可以接收任意类型的集合对象, 要求接收的集合对象只能存储Integer或者是Integer的父类类型数据。
1)格式:泛型的下限

? super Integer : 只能存储Integer或者是Integer父类元素。  

2)代码分析

需求二: 定义一个函数可以接收任意类型的集合对象, 要求接收的集合对象只能存储Number或者是Number的子类类型数据。
1)格式:泛型的上限

? extends Number : 只能存储Number或者是Number类型的子类数据。 

2)代码分析:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值