栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java泛型边界类型

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java泛型边界类型

不,两个签名不相同。根据Java语言规范的第8章:

如果两个方法具有相同的名称和参数类型,则它们具有相同的签名。

如果满足以下所有条件,则两个方法或构造函数声明M和N具有相同的参数类型:

  • 它们具有相同数量的形式参数(可能为零)
  • 它们具有相同数量的类型参数 (可能为零)

由于两种方法共享的类型参数数量不同,因此签名也不相同。

在实际情况下,使用隐式类型参数调用方法时,它们可能被视为可互换的。但这仅在源代码级别,而不在二进制级别。换句话说,如果您

work()
在类中具有一个类型参数的版本,并且在类中
Foo
被一个方法调用
Bar
,然后切换到的两个类型参数的版本
work()
并重新编译
Foo
,则还需要重新编译
Bar

编辑

@onepotato问:

如果它们没有相同的签名,那么为什么当我将它们复制并粘贴到一个类中时,Eclipse告诉我它们具有相同的方法签名?

两个签名 相等 和两个签名 冲突 (“等效”)之间存在区别。如果一个签名是另一个的子签名,则两个签名冲突。稍后在同一部分中对此进行说明:

当m1是m2的子签名或m2是m1的子签名时,两个方法签名m1和m2是等效的。

在类中声明两个具有重写等效签名的方法是编译时错误。

如果满足以下任一条件,则方法m1的签名是方法m2的签名的子签名:

  • m2与m1具有相同的签名,或者
  • m1的签名与m2的签名的擦除(第4.6节)相同。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号