在集合中,经常可看到<?>,<? extends E>,<? super E>,它们都是属于泛型;

  <?>:

   是泛型通配符,任意类型,如果没有明确,那么就是Object以及任意类型的Java类;

  

  <? extends E>:

   向下限定,E及其子类,表示包括E在内的任何子类;

  <? super E>:

   向上限定,E及其父类,表示包括E在内的任何父类;

  示例如下:

class Animal {}

class Dog extends Animal {}

class Cat extends Animal {}

public class CollectionDemo {

        public static void main(String[] args) {
Collection<?> c1 = new ArrayList<Animal>();
Collection<?> c2 = new ArrayList<Dog>();
Collection<?> c3 = new ArrayList<Cat>();
Collection<?> c4 = new ArrayList<Object>(); Collection<? extends Animal> c5 = new ArrayList<Animal>();
Collection<? extends Animal> c6 = new ArrayList<Dog>();
Collection<? extends Animal> c7 = new ArrayList<Cat>();
// Collection<? extends Animal> c8 = new ArrayList<Object>(); Collection<? super Animal> c9 = new ArrayList<Animal>();
// Collection<? super Animal> c10 = new ArrayList<Dog>();
// Collection<? super Animal> c11 = new ArrayList<Cat>();
Collection<? super Animal> c12 = new ArrayList<Object>();
} }

    在上述代码中,c1,c2,c3,c4中<?>代表任意类型,c5,c6,c7中<? extends Animal>代表包括Animal在内的任何子类;而c8中,Object是所有类的基类,Animal是它的子类,<? extends Animal>只包含Animal及其子类,所以这里会编译报错;c9,c10,c11,c12中<? super Animal>表示包含Animal及其父类,c10,c11这里会编译报错;

最新文章

  1. 【wikioi】2495 水叮当的舞步(IDA*)
  2. 关于ligerUi的ligertree的初始化默认选中指定项目的方法
  3. Qt 学习之路 :动态视图
  4. 嵌入式开发——boa服务器下的ajax与cgi通信
  5. java的wait和notifyAll使用方法
  6. Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
  7. 构建自己的PHP框架--构建模版引擎(2)
  8. Spring有什么缺点?
  9. .net core mvc 区域路由设置(配置)
  10. Android 动态设置TextView的drawableLeft等属性
  11. &#127827; vue循环渲染本地图片不显示? &#127827;
  12. 移动 ProgramData\Package Cache 文件夹
  13. 实现一个simple 3层的神经网络
  14. java使用类数组 报错Exception in thread &quot;main&quot; java.lang.NullPointerException
  15. ecmall 学习记录2
  16. asp.net core2.0中网站发布的时候,怎么样才配置才可以使视图文件不被打包进去?
  17. POJ 2395 Out of Hay (Kruskal)
  18. Replicated Ship 本地 kubernetes 环境试用
  19. SpringBoot -- 计划任务
  20. UUID含义及ubuntu配置系统默认JDK

热门文章

  1. python条件控制语句要注意什么?本文详解
  2. 刷题[CISCN2019 总决赛 Day2 Web1]Easyweb
  3. SSM框架整合 IDEA_Maven
  4. iNeuOS工业互联平台,机床&amp;PLC硬件网关与平台无缝对接,进行数据交互
  5. 《SpringCloudDubbo开发日记》(一)Nacos连官方文档都没写好
  6. Python练习题 041:Project Euler 013:求和、取前10位数值
  7. Batch批处理 间断向EXE发送参数
  8. Tensorflow学习笔记No.3
  9. .NET Standard SDK 样式项目中的目标框架
  10. DX12龙书 01 - 向量在几何学和数学中的表示以及运算定义