在 Java,假定我有以下舱面集装箱,其中含有一个舱面物品清单:
public class Container<T>
{
private List<Item<? extends T>> items;
private T value;
public Container(T value)
{
this.value = value;
}
public void addItem(Item<? extends T> item)
{
items.add(item);
}
public void doActions()
{
for (Item<? extends T> item : items)
{
item.doAction(value);
}
}
}
public abstract class Item<T>
{
public abstract void doAction(T item);
}
Eclipse gives the error:
The method doAction(capture#1-of ? extends T) in the type Item is not applicable for the arguments (T)
我早就阅读了通用例子和前后的各种张贴,但我仍然可以说明为什么允许这样做。 单单还未在其拟议的固定点中提供任何帮助。 变式<代码> 代码> 是T类,为何不适用<代码>? 延伸 T?