gpt4 book ai didi

java - 为什么 List 不是 List 的子类型?
转载 作者:搜寻专家 更新时间:2023-11-01 01:08:41 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
java generics covariance

我试图弄清楚 List<String> 不是 List<Object> 的子类型.

在 effective Java 中,Josh Bloch 指出,尽管它可能看起来违反直觉,但它确实有道理。他说的原因是你可以把任何对象放在List<Object>中。 , 但只能将 String 放入 List<String> .我不确定这如何证明字符串列表不是对象列表的子类型。

也许我对 subtype 这个词感到困惑.我认为它的意思是当S是T的子类型时,S的实例是T的实例。因此,对于List<String>成为 List<Object> 的子类型, Object 必须是 String 的父类(super class),从技术上讲是这样。知道我的推理哪里出了问题吗?

25 4 0