findメソッドの呼び出し時にエラーが報告されました。Javaからジェネリックスを継承する際の問題
interface Node<N extends Node<N>> {
void setNext(N next);
N getNext();
}
interface Entry<K, V> extends Node<Entry<K, V>> {
K getKey();
void setValue(V value);
V getValue();
}
class Test {
public static <N extends Node<N>> N find(N base, Object obj) {
for (N node = base; node != null; node = node.getNext())
if (node.equals(obj))
return node;
return null;
}
public static <K, V, E extends Entry<K, V>> E getEntry(E[] table, K key) {
return find(table[0], key);
}
}
バインドされた不一致:テストタイプの一般的なメソッドfind(N、Object)は引数(E、K)には適用されません。推定されるタイプEは、有界パラメータの有効な代替ではありません>
これはなぜそうであるか分かりません。