Java 泛型发生意外绑定错误

Java 泛型发生意外绑定错误,java,generics,Java,Generics,我正在尝试编写一个方法,该方法接受实现HasId接口的所有元素的列表,并返回具有给定Id的元素。但由于某些原因,我遇到了意外的绑定编译错误 public abstract class HasIdUtil<T> extends AbstractTestNGSpringContextTests { protected T findById(List<T extends HasId> hasIdList, String id) { for (T item : hasI

我正在尝试编写一个方法,该方法接受实现HasId接口的所有元素的列表,并返回具有给定Id的元素。但由于某些原因,我遇到了意外的绑定编译错误

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();
}

有什么想法吗?

我应该指定HasId并制作通用键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");
}

}

请发布错误消息。您确定收到意外的绑定错误吗?还是别的什么?如果是的话,你能告诉我你的电话号码吗?不知怎的,我觉得ListIntellij Idea出于某种原因用红色resolveId方法绘制