| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 泛型,extends,super,通配符 -> 正文阅读 |
|
[Java知识库]泛型,extends,super,通配符 |
https://docs.oracle.com/javase/tutorial/java/generics/bounded.html 有界类型参数(Bounded Type Parameters)有时可能希望限制可用作参数化类型中的类型参数的类型。例如,对数字进行操作的方法可能只希望接受 Number 或其子类的实例。这就是有界类型参数的作用。 若要声明有界类型参数,请列出类型参数的名称,然后是
多重界限(Multiple Bounds)前面的例子说明了类型参数的使用,它只有一个边界,但是一个类型参数可以有多个边界:
具有多个边界的类型变量是边界中列出的所有类型的子类型。如果其中一个边界是类,则必须首先指定它。例如:
如果没有首先指定绑定 A,就会得到一个编译时错误:
通配符上界通配符(Upper Bounded Wildcards)您可以使用上限通配符来放松对变量的限制。例如,假设您想要编写一个方法来处理 List < integer > 、 List < double > 和 List < number > ; 您可以通过使用上限通配符来实现这一点。 若要声明上界通配符,请使用通配符值(’?’),然后是 要编写处理 Number 列表和 Number 子类型(如 Integer、 Double 和 Float)的方法,您需要指定
无界通配符(Unbounded Wildcards)无界通配符类型是使用通配符指定的,例如
下界通配符(Lower Bounded Wildcards)上限通配符部分显示,上限通配符将未知类型限制为特定类型或该类型的子类型,并使用 extends 关键字表示。类似地,下限通配符将未知类型限制为特定类型或该类型的超类型。 下界通配符使用通配符表示,后面是
假设您想要编写一个将 Integer 对象放入 List 的方法。为了最大限度地提高灵活性,您希望该方法能够处理 List < Integer > 、 List < Number > 和 List < Object > ——任何可以存储 Integer 值的东西。 要编写处理 Integer 列表和 Integer 超类型(如 Integer、 Number 和 Object)的方法,您需要指定 List < ?super Integer > 。
类型擦除泛型被引入 Java 语言以在编译时提供更严格的类型检查并支持泛型编程。为了实现泛型,Java 编译器将类型擦除应用于:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:57:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |