<分区>
我想这是一个非常令人困惑的标题,但我不知道还能叫什么 - 可能也在某处回答过,但我找不到任何东西。举个例子:
List<Class<? extends Integer>> myList;
void foo() {
bar(myList);
}
void bar(List<Class<?>> a) { /* ... */ }
它不编译(不适用的参数,它说)。如果我删除边界它工作正常:
List<Class<?>> myList;
void foo() {
bar(myList);
}
void bar(List<Class<?>> a) { /* ... */ }
Class<? extends Integer>
只是比 Class<?>
更具体.它怎么停止工作了?请注意,此问题仅出现在二级泛型中。如果没有列表,则为 Class<? extends Integer>
和 Class<?>
, 它也有效。但是当泛型深度达到两个或更多级别时,它似乎停止工作。任何原因/解决方法/等?