【发布时间】:2019-04-15 06:27:05
【问题描述】:
(注意:这不与this question about vs. !)
我对 Java 的泛型感到困惑。
ArrayList<? extends Object> x = new ArrayList<String>();
ArrayList<Object> y = new ArrayList<String>();
在本例中,第一行编译,而第二行不编译。这是为什么呢?
我认为形状 List<A> x = new ArrayList<B>() 的赋值应该与 B extends A 一样有效,即右侧比赋值的左侧具有更高的特异性,但显然我错了。
有人能详细说明这些陈述的异同吗?
【问题讨论】:
-
我不认为它是重复的。我之前在搜索中遇到过该线程,但这不是关于 > 与 .
-
这也是一个阅读集合和泛型的好帖子:stackoverflow.com/questions/2723397/…
标签: java generics inheritance types