泛型的类型通配符

类型通配符:

1.1背景:有这样一个方法,方法中含有一个泛型实例,比如定义函数print方法时,public void print(Comparator ob),但是在实际传入的过程中我们传入了一个Comparator ob,很明显虽然student类是object的子类,但是泛型类之间并不是继承关系就会产生报错。

1.2有时我们的确有这样的需求,比如在创建的一个函数中传入一个泛型参数的需求,并且这个需求有时一样能够不只是传入一种泛型(比如要求可以传入泛型的子类,父类,或者任意的泛型)。这时我们就需要依赖于泛型类。

1.3泛型通配符分为三种:上届,下届,无界

无界:public void print(Comparator<?> ob),这时在main方法中所传入的泛型实例可以是任意的泛型类型。

上届:public void print(Comparator<? extend Dog>),上届泛型通配符,在main方法中传入的泛型类型,可以是Dog类型,以及dog的子类型。

下届:public void print(Comparator<? super dog>),下届类型通配符,在main方法中传入的泛型类型可以是Dog泛型类型,以及Dog类型的父类型。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务