热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

有限制条件的通配符的使用[Java]

有限制条件的通配符的使用?extendsT-----类型上界这个时候这个通配符可以配的范围就是T类型对象和T类型子类的对象形象的也可以看成是:(-oo,T];就是负无穷到T—把T包




有限制条件的通配符的使用

? extends T ----- 类型上界


  • 这个时候这个通配符可以配的范围就是 T类型对象和T类型子类的对象
    • 形象的也可以看成是 : (-oo , T];
      • 就是负无穷到T — 把T包含在内

那么这个时候G就可以作为G和G的父类,其中A是B的父类

? super T — 类型下界


  • 这个时候这个通配符可以配的范围就是T类型的对象和T类型的父类的对象
    • 形象的说也可以看成是: [T , +oo)
      • 也就是T到正无穷

那么这时候G 就可以作为G和G 的父类,其中A是C的子类


关于有限制条件的通配符的测试:

package 泛型.通配符;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List list1 = null;
List list2 = null;

List list3 = new ArrayList<>();
List list4 = new ArrayList<>();
List list5 = new ArrayList<>();

list1 = list3;
list1 = list4;
/*
这个时候这里就会编译出错,因为这个时候我们的list5指向的是一个ArrayList 类型的对象,这个时候我们的? extends Number
只能匹配Number类型的对象和Number子类类型的对象
*/
// list1 = list5;

/*
这时候编译会出错,因为这个时候我们的list3指向的是一个ArrayList 类型的对象,这个时候我们的 ? super Number
只能匹配Number类型的对象和Number类型的父类类型的对象
*/
// list2 = list3;
list2 = list4;
list2 = list5;
}
}


推荐阅读
  • Hybrid 应用的后台接口与管理界面优化
    本文探讨了如何通过优化 Hybrid 应用的后台接口和管理界面,提升用户体验。特别是在首次加载 H5 页面时,为了减少用户等待时间和流量消耗,介绍了离线资源包的管理和分发机制。 ... [详细]
  • MySQL 高性能实战教程
    本课程深入探讨 MySQL 的架构、性能调优、索引优化、查询优化及高可用性等关键领域。通过实际案例和详细讲解,帮助学员掌握提升 MySQL 数据库性能的方法与技巧。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 本文详细介绍了如何在PHP中使用serialize()和unserialize()函数,以及它们在数据传输和存储中的应用。 ... [详细]
  • 探讨在 JavaScript 中使用不同方向的 for 循环来实现跟随鼠标的 div 动画时,为什么会出现不同的视觉效果。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 异常要理解Java异常处理是如何工作的,需要掌握一下三种异常类型:检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常ÿ ... [详细]
  • Java每日一题:876. 链表的中间节点解析
    本文详细介绍了LeetCode上编号为876的题目——链表的中间节点,包括问题描述、解决方案和代码实现。 ... [详细]
  • 回顾2003年的非典疫情,那段经历不仅改变了无数人的生活,也给整个国家带来了深远的影响。本文通过一位亲历者的视角,分享了那段特殊时期的点滴故事,并探讨了传染病对社会和个体的影响。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 基于JQuery实现的评分插件
    本文介绍了一个使用JQuery创建的交互式评分控件。当用户将鼠标悬停在星星上时,左侧的星星会变为实心,右侧保持空心,并显示对应的评分等级;移开鼠标后,所有星星恢复为空心状态。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 本文探讨了 JavaScript 中一些令人困惑的行为,并深入分析其背后的原因。 ... [详细]
author-avatar
暮年排击_967
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有