首页 > Java > java教程 > 为什么 Java 集合的 `remove()` 方法不是通用的?

为什么 Java 集合的 `remove()` 方法不是通用的?

Susan Sarandon
发布: 2024-12-11 09:22:10
原创
560 人浏览过

Why Aren't Java Collections' `remove()` Methods Generic?

为什么 Java 集合的移除方法不是通用的?

Java 集合框架为集合和映射提供了一个remove()方法。但是,此方法不是通用的,这意味着它接受 Object 作为参数而不是 E 类型参数。这一决定引发了人们对将remove()设为泛型的潜在好处的疑问。

将remove()设为泛型的一个论点是,当意外尝试从集合中删除不兼容的类型时,它可以防止编译时错误。例如,如果 Collection不小心传递了一个 Set,它会导致编译时错误,而不是稍后的调试问题。

但是,remove() 不是通用的主要是因为它允许基于相等性而不是严格的类型检查来删除对象。根据remove()方法规范,要删除的元素被标识为对象e,使得(o==null ? e==null : o.equals(e))为真。这允许元素删除的灵活性,因为删除的对象不需要与传递给remove()方法的对象具有相同的类型。

例如,可以有一个Map。当使用 LinkedList 作为参数调用remove()时,它应该删除具有相同内容的列表的键,即使它是 List 的不同实现。如果remove()是通用的并且仅限于单个类型参数,这是不可能的。

以上是为什么 Java 集合的 `remove()` 方法不是通用的?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板