搜索
首页Javajava教程为什么我无法将元素添加到列表中

Why Can't I Add Elements to a List

理解列表数据结构

在 Java 中,了解在泛型中使用通配符的局限性至关重要。让我们深入研究向声明为 List 的 List 添加元素的具体问题extends Number>:

当您尝试向 foo3 添加整数时,您可能会遇到类似以下内容的错误:

为什么无法添加到列表

通配符 ?扩展列表中的数字 foo3 意味着 foo3 可以保存扩展 Number 的一系列类型的值。这意味着以下分配都是有效的:

但是,鉴于这种灵活性,不可能确定地确定可以添加到 foo3 中而不违反其完整性的对象类型。禁止添加 Integer,因为 foo3 可能指向 List。同样,禁止添加 Double,因为 foo3 可能引用 List

抽象的保证

本质上,List保证你只能从中读取并且会得到一个 T 或 T 的子类。由于你不能保证列表的具体类型,所以你不能安全地添加到它。

相比之下,List< ;?超级T>允许您添加类型 T 或其子类的值,因为您可以确定列表可以保存这些值而不违反其类型安全。

示例:了解 Collections.copy()

考虑Collections.copy() 的签名:

注意 src 的通配符 (? extends T) 如何允许你传递保存类型 T 或其子类的值的任何列表,保证 src 生成的值将是类型 T 或其子类。这使得该方法能够处理各种列表类型,安全地复制值。

结论

了解使用泛型通配符的限制对于编写健壮的 Java 代码至关重要。请记住,您无法添加到列表因为你不能保证它所指向的列表的具体类型。相反,您只能从中读取并确保获取 T` 类型或其子类的值。

以上是为什么我无法将元素添加到列表中的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
子类如何通过继承父类的setName方法设置私有属性?子类如何通过继承父类的setName方法设置私有属性?Apr 19, 2025 pm 04:57 PM

关于子类如何通过继承父类的setName方法设置私有属性在编程中,特别是在面向对象编程的语言如Java中,子类与�...

如何解决使用Eclipse Paho的MqttAsyncClient连接本地EMQX时用户名密码认证失败的问题?如何解决使用Eclipse Paho的MqttAsyncClient连接本地EMQX时用户名密码认证失败的问题?Apr 19, 2025 pm 04:54 PM

如何解决使用EclipsePaho的MqttAsyncClient连接本地EMQX时用户名密码认证失败的问题?在使用Java和Eclipse...

公司安全软件导致应用无法运行?如何排查和解决?公司安全软件导致应用无法运行?如何排查和解决?Apr 19, 2025 pm 04:51 PM

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

Java如何正确生成并显示微信小程序带参数二维码?Java如何正确生成并显示微信小程序带参数二维码?Apr 19, 2025 pm 04:48 PM

在Java中生成带参数的微信小程序二维码并将其显示在HTML页面上,是一个常见的需求。本文将详细探讨如何使用J...

Java多接口调用如何实现状态同步:监听A接口对B接口的影响?Java多接口调用如何实现状态同步:监听A接口对B接口的影响?Apr 19, 2025 pm 04:45 PM

Java多接口调用间的状态同步:监听A接口对B接口的影响在Java开发中,经常会遇到需要同时调用多个接口的情况�...

Java单线程下的指令重排序会导致输出结果改变吗?Java单线程下的指令重排序会导致输出结果改变吗?Apr 19, 2025 pm 04:42 PM

Java单线程下的指令重排序探讨在Java编程中,指令重排序是一个常见的话题。指令重排序指的是编译器和处理器�...

如何用Java代码在Outlook中创建每天或每周重复的日历事件?如何用Java代码在Outlook中创建每天或每周重复的日历事件?Apr 19, 2025 pm 04:39 PM

在Outlook中创建周期性重复的日历事件本文将探讨如何使用Java代码在Outlook中创建每天或每周重复的日历事件。提...

Tomcat启动Servlet报错java.lang.IllegalStateException:如何排查servlet-api.jar加载问题?Tomcat启动Servlet报错java.lang.IllegalStateException:如何排查servlet-api.jar加载问题?Apr 19, 2025 pm 04:36 PM

Tomcat启动Servlet时报错排查在部署Servlet应用时,遇到Tomcat启动失败并报出java.lang.IllegalStateException:...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具