我有以下代码段:
public void reorder(int fromIndex, int toIndex) {
getElements().add(toIndex, getElements().remove(fromIndex));
}
在这里,该方法getElements
具有返回类型List<?>
。该remove
方法具有返回类型?
,并且该add
方法将其参数显示为int index, ? element
。所以我的假设是,由于方法的返回类型和remove
方法的第二个参数add
是相同的——?
方法调用必须成功。但是,我错了,上面的代码段导致错误:
The method add(int, capture#17-of ?)
in the type List<capture#17-of ?>
is not applicable for the arguments (int, capture#18-of ?)
在这里,我没有任何直接访问列表的权限,也不知道它是getElements
方法返回的原始类型。我在这里想要的只是删除项目fromIndex
并将其放在toIndex
. 那么,我该如何实现呢?我对泛型的理解也有什么问题吗?