我尝试编写接受实现(my)HasId接口的任何元素列表的方法,并返回给定Id的元素。但出于某种原因,我得到了#34;意外的绑定"编译错误。
public abstract class HasIdUtil<T> extends AbstractTestNGSpringContextTests {
protected T findById(List<T extends HasId> hasIdList, String id) {
for (T item : hasIdList) {
if (id.equals(item.resolveId())) {
return item;
}
}
throw new ElementNotFoundException("There are no elements with id = " + id + " in given list");
}
}
这是我的界面:
public interface HasId<T> {
T resolveId();
}
有什么想法吗?
答案 0 :(得分:0)
我应该指定HasId&lt; TYPE&gt;并制作了通用密钥K. 下面的代码可以按照我的意愿工作。
public abstract class HasIdUtil<V extends HasId<K>, K> extends AbstractTestNGSpringContextTests {
protected V findById(List<? extends V> hasIdList, K id) {
for (V hasId : hasIdList) {
if (id.equals(hasId.resolveId())) {
return hasId;
}
}
throw new ElementNotFoundException("There are no elements with id = " + id + " in given list");
}
}