我正在做一些图形实现,我认为代码闻起来很糟糕。
所以我创建了一个界面Graph:
interface Graph <K extends Comparable <K> , V>
例如有一个像这样的方法:
public void addVertex(K key, V value);
或
public boolean remove (K key);
实现将保存基于键值对的顶点。
然后我做了一个实际的课程:
public class AdjacencyList <K extends Comparable <K> , V> implements Graph
是什么导致我上面提到的方法是这样的:
public void addVertex(Comparable key, Object value){/*rest of the code*/}
public boolean remove(Comparable K){/*rest of the code*/}
这些让我当然做了很多演员。
我只是在学习通配符,在表面上摸索,在这里阅读几个问题,但是我仍然感到困惑,为什么我的代码表现得像这样,更重要的是,为什么这样做的正确方法是什么清理,并将方法参数恢复为K和V.
答案 0 :(得分:1)
您必须更改您的课程才能实施Graph<K, V>
,而不仅仅是Graph
。
public class AdjacencyList <K extends Comparable<K>, V> implements Graph<K, V>
然后,您可以将K
和V
用于您实施的方法&#39;参数。
@Override
public void addVertex(K key, V value) {
// TODO Auto-generated method stub
}