对泛型类的非泛型引用会导致非泛型返回类型

对泛型类的非泛型引用会导致非泛型返回类型,第1张

对泛型类的非泛型引用会导致非泛型返回类型

好吧,请两个,我误解了您的问题。

当您使用delcare

Thing
(称为 原始类型 )而不是
Thing<?>
参数化类型
)时,Java编译器会剥离所有泛型参数,即使是(如您的情况),方法的泛型也与方法的泛型无关。类。

来自(优秀的)Java Generics
FAQ

我可以像其他类型一样使用原始类型吗?

原始类型的方法或构造函数具有在类型擦除后将具有的签名。

这个看似轻率且不引人注意的句子描述了所讨论的行为。您将其

Thing
用作原始类型,因此返回类型为
Collection
(not
Collection<String>
),因为这是类型擦除后的类型。

困惑?不奇怪。只需查看该常见问题解答的大小即可。大概有大约三个人了解Java泛型的全部含义。只要考虑一下我最喜欢的JDK声明:

Enum<T extends Enum<T>>

(在FAQ中也有对此的解释)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5561739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存