Java 中的上界通配符2024 年 9 月 10 日 | 阅读 3 分钟 Java 的泛型提供了一种强大的方式来创建类、接口和方法,这些类、接口和方法可以在保持类型安全的同时处理各种类型。通配符在泛型中的应用进一步增加了其通用性,使您能够设计更灵活、可重用的代码。上界通配符就是这样一种通配符。在本节中,我们将解释上界通配符,阐述它们在 Java 中的用途,并解释它们的优点。 Java 通配符通配符是泛型编程中的一个特殊字符,用问号 (?) 表示。通配符代表未知类型。在 Java 泛型中,有三种不同类型的通配符:?、? extends T 和? super T。 上界通配符通过使用上界通配符,您可以指示任何作为特定类型子类型的类型都可以成为参数化类型(例如接口或泛型类)。换句话说,它通过允许使用基类型及其所有子类来提供一定程度的通用性。 上界通配符的基本语法如下: 在此示例中,T 可以是 SomeType 的任何子类。 方法参数中的通配符我们还可以使用上界通配符作为方法参数,以实现更大的灵活性。例如: 此示例中的 process 方法接受一个带有上界通配符 (<T extends Number>) 的 Box 作为参数。这意味着它可以接受包含任何 Number 子类型的 Box。 上界通配符的用途1. 提高灵活性 使用上界通配符的主要原因之一是提高代码的灵活性。当我们使用特定类型作为参数时,我们会限制可使用类型的范围。通过使用上界通配符,我们允许更广泛的类型,使我们的代码更通用。 2. 子类型多态 上界通配符促进子类型多态,允许我们编写与基类型及其所有派生类型无缝工作的代码。这在处理类层次结构和多态行为时特别有用。 上界通配符的局限性虽然上界通配符提供了灵活性,但也有其局限性。其中一个限制是,我们无法写入用上界通配符声明的泛型类型。这被称为协变。例如: 尝试为带有上界通配符的 Box 设置值会导致编译错误。这是因为编译器无法保证通配符的实际类型,并且它希望确保类型安全。 现在,让我们看一个使用泛型方法处理元素列表的实际示例。假设我们有一个输出列表元素的方法: WildCards.java 输出 1 2 3 4 5 1.1 2.2 3.3 4.4 5.5 解释 此示例中的 printList 方法通过使用上界通配符 (<T extends Number>) 指定列表可以包含任何 Number 子类型的组件。这样就不需要单独的方法,并且允许我们传递 Double 和 Integer 的列表。 结论Java 的上界通配符提供了一个强大的工具,用于创建更可重用、更灵活的代码。通过允许参数化类型成为给定类型的任何子类型,我们可以创建与各种类型完美配合的类和方法。这增强了代码的多态性,并鼓励代码重用。 总之,了解如何在 Java 中使用上界通配符将帮助我们为应用程序编写更灵活、更具韧性和更通用的代码。 下一个主题Java 中的通配符 |
面向对象编程有四个支柱:抽象、多态、封装和继承。在本节中,我们将讨论其中之一,抽象。同时,我们还可以学习如何在 Java 中实现抽象。抽象 OOPs 的一个特性。该特性允许……
阅读 4 分钟
应用程序质量对于软件系统的开发至关重要,尤其是大型系统。高质量的软件将降低软件维护成本,并增强潜在的软件重用性。为了更定量和客观地衡量软件质量,软件度量(MOOD)给出了印象...
5 分钟阅读
Java 5 中引入的泛型为开发人员编写和使用 Java 集合的方式带来了革命性的变化。泛型允许类和方法对各种类型的对象进行操作,同时提供编译时类型安全。这一强大功能具有许多优点,有助于编写更清晰、更...
阅读 4 分钟
在编程世界中,null 值长期以来一直是令人沮丧的根源,导致 NullPointerException 导致应用程序崩溃并产生意外行为。为了解决这个问题,Java 在 Java 8 中引入了 Optional 类,提供了一个容器类型,该类型包含一个非 null...
阅读 4 分钟
Java 中的 for 循环和 for-each 循环的区别 循环只是一种重复执行特定代码块的方法,只要某个条件保持为真。编程语言通常提供不同类型的循环来处理重复,例如 while、...
阅读 6 分钟
软件开发需要日志记录,这对于调试和故障排除也至关重要。Java 中的 Logger 类是日志记录数据的关键工具,并在许多应用程序中得到广泛使用。Java 标准库包含 Logger 类,它提供了一种简单灵活的机制...
阅读 4 分钟
Java 社区流程 (JCP) 是开发和演进 Java 编程语言及其相关技术的关键机制。自 1998 年成立以来,JCP 在保持 Java 在快速发展的软件开发世界中的相关性和适应性方面发挥了至关重要的作用。在……
阅读 6 分钟
在 Java 中处理字符串时,开发人员通常需要将它们分解成更小的部分进行处理或分析。这个过程称为标记化,可以使用各种技术来实现。一种这样的技术是利用 StringTokenizer 类提供的 countTokens() 方法。在此...
阅读 4 分钟
Pig 游戏,也称为“Pig Dice Game”或“Pass the Pigs”,是一款简单有趣的骰子游戏,可以使用 Java 编程语言实现。它涉及掷一对骰子并根据结果累积分数。目标是...
阅读 8 分钟
JSch(Java 安全通道)是一个流行的 Java 库,它允许开发人员通过 SSH 连接到远程服务器,并使用 SFTP(安全文件传输协议)执行安全文件传输。它广泛用于自动化文件传输、远程命令执行和安全身份验证。分步过程 步骤...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India