泛型 ? extends E ? super E的区别
package cn.itcast.generic;
import java.util.ArrayList;
import java.util.Collection;
public class SupperGenericDemo {
public static void main(String[] args) {
// 泛型如果明确写的时候,前后必须一致 ,c2,c3,c4会报错
Collection<Object> c1 = new ArrayList<Object>();
// Collection<Object> c2 = new ArrayList<Animal>();
// Collection<Object> c3 = new ArrayList<Cat>();
// Collection<Object> c4 = new ArrayList<Dog>();
// ?表示任意的类型都是可以的
Collection<?> c5 = new ArrayList<Object>();
Collection<?> c6 = new ArrayList<Animal>();
Collection<?> c7 = new ArrayList<Cat>();
Collection<?> c8 = new ArrayList<Dog>();
// ? extends E: 向下限定,E及其子类
// Collection<? extends Animal> c9 = new ArrayList<Object>();
Collection<? extends Animal> c10 = new ArrayList<Animal>();
Collection<? extends Animal> c11 = new ArrayList<Cat>();
Collection<? extends Animal> c12 = new ArrayList<Dog>();
// ? super E: 向上限定,E及其父类
Collection<? super Cat> c13 = new ArrayList<Object>();
Collection<? super Cat> c14 = new ArrayList<Animal>();
Collection<? super Cat> c15 = new ArrayList<Cat>();
// Collection<? super Cat> c16 = new ArrayList<Dog>();
}
}
class Animal{
}
class Cat extends Animal{
}
class Dog extends Animal{
}
泛型 ? extends E ? super E的区别的更多相关文章
- Android开发之深入理解泛型extends和super的区别
摘要: 什么是泛型?什么是擦除边界?什么是上界限定或下界限定(子类型限定或超类型限定)?什么是类型安全?泛型extends关和super关键字结合通配符?使用的区别,两种泛型在实际Android开发中 ...
- Java泛型中extends和super的区别?
<? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...
- java泛型中extends 和 super的区别
一般对泛型中extends 和 super 的区别是这样介绍的: 关键字说明 ? 通配符类型 <? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 < ...
- 一文搞懂List 、List<Object>、List<?>的区别以及<? extends T>与<? super T>的区别
前段时间看<Java编程思想>泛型时对 <? extends T>与<? super T>很懵逼,接着看到泛型与集合的更蒙蔽,随后又翻开<码出高效>时, ...
- 浅谈Java泛型中的extends和super关键字(转)
通配符 在本文的前面的部分里已经说过了泛型类型的子类型的不相关性.但有些时候,我们希望能够像使用普通类型那样使用泛型类型: 向上造型一个泛型对象的引用 向下造型一个泛型对象的引用 向上造型一个泛型对象 ...
- Java泛型的应用——T extends Comparable<? super T>
在观察Java源码的时候,发现了这么一个写法T extends Comparable<? super T>.不禁纳闷为什么要这么写呢?有什么好处吗,extends和super在这里的作用着 ...
- Java泛型 PECS(Producer Extends, Consumer Super)
本文转载自ImportNew,原文链接 Java 泛型: 什么是PECS(Producer Extends, Consumer Super) PECS指“Producer Extends,Consum ...
- Java泛型中extends和super的理解
作者:zhang siege链接:https://www.zhihu.com/question/20400700/answer/91106397来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...
- Java泛型(6):extends和super关键字
(1) <T extends A> 因为擦除移除了类型信息,而无界的泛型参数调用的方法只等同于Object.但是我们可以限定这个泛型参数为某个类型A的子集,这样泛型参数声明的引用就可以用类 ...
- <T extends Comparable<? super T>>
在看Collections源代码中,看到如下代码: public static <T extends Comparable<? super T>> void sort(List ...
随机推荐
- C语言学习--指针数组
#include<stdio.h> //指针数组, 数组里面的每一个元素都是指针 int main() { int a = 10; int b = 20; int c = 30; // i ...
- pgsql 查询结果转换为json数组
select array_to_json(array_agg(row_to_json(t))) from (SELECT * FROM test) t
- ABAP 选择屏幕内的组件以及使用
选择屏幕组件 主要记录了ABAP编程中选择屏幕常用的组件 选择框 范围选择框 radio单选 check选择 单行展现 配合radio和check使用较多 下拉框 自定义下拉框 按钮 文件框 文字帮助 ...
- js字符串截取(获取指定字符后面的所有字符内容)
function getCaption(obj, text){ let index = obj.lastIndexOf(text) + text.length-1; obj = obj.substri ...
- cell批量改名字
本帖最后由 wanchengchen 于 2021-7-19 10:41 编辑下面是在论坛上学习到的脚本,发上来大家一起学习,使用的是virtuoso6.1.7:layout改名字:procedure ...
- [485] C2 Age Of Splendor Update 1 OpCodez
[485] C2 Age Of Splendor Update 1 Client 00 SendProtocolVersion 01 MoveBackwardToLocation 02 Say 03 ...
- mongodb地理位置坐标加了索引,操作时报错 Location object expected, location array not in correct format
别犹豫了,将坐标中的数据改为数字类型即可,如: location:[113.45,34,191]
- ZSTUOJ平台刷题③:Problem A.--打印金字塔
Problem A: 打印金字塔 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 10011 Solved: 6227 Description 请编写程序 ...
- jekyll+github pages
写在前面 这篇文章记录了我折腾jekyll,github pages的过程,看到别人的 xxxx.github.io,于是我也想搞一个,了解到大都使用的jekyll来生成的.最开始我还不知道可以直接f ...
- excel的几个常用方法
--笔记开始: 1.if(条件,真值,假值),类似于编程语言中的三元运算符.条件为真时返回真值,条件为假时返回假值. 2.match(目标值,查找区域,查找类型),一般查找类型为0(等值查找),查找区 ...