我在实现Generic DirectGraph Implementation时遇到了问题。请帮我!
public interface DirectedGraph<Vertex<T extends Comparable<T>>> {
<T extends Comparable<T>> boolean addVertex(Vertex<T> v);
<T extends Comparable<T>> boolean addEdge(Vertex<T> v1, Vertex<T> v2);
int size();
<T extends Comparable<T>>boolean removeEdge(Vertex<T> v1, Vertex<T> v2);
<T extends Comparable<T>>boolean hasEdge(Vertex<T> v1, Vertex<T> v2);
}
public class Vertex<E extends Comparable<E>> {
E vertex;
}
上述代码有什么问题? Eclipse显示错误
Multiple markers at this line
- Syntax error on token "<", , expected
- The type parameter Vertex is hiding the type
Vertex<E>
- Syntax error on token ">>>", >> expected
答案 0 :(得分:2)
要么使类通用,要么使用泛型方法。在您的情况下,您同时执行这两种操作。此外,由于您已确定DirectedGraph
将使用Vertex
类型,因此它不是类Vertex但是类型 “顶点”。当您使用类或通用方法时,您使用具体的类或接口类型,而不是在定义本身 < / p>
public interface DirectedGraph<T extends Comparable<T>> {
boolean addVertex(Vertex<T> v);
boolean addEdge(Vertex<T> v1, Vertex<T> v2);
int size();
boolean removeEdge(Vertex<T> v1, Vertex<T> v2);
boolean hasEdge(Vertex<T> v1, Vertex<T> v2);
}
class Vertex<E extends Comparable<E>> {
E vertex;
}