私はスーパークラス(GraphNode)とサブクラス(AStarNode)を持っています。 どちらも別のクラスのメンバになることができます。なぜなら、それをジェネリッククラス(GraphEdge)に変換したクラスです。汎用メンバのメンバ関数を呼び出す
私はスーパークラスのいくつかのメンバー関数を呼び出すしたいのですが、コンパイラはと文句を言い、このクラス内:
The method addEdge(GraphEdge<T>) is undefined for the type T
がどのように私はこの問題を解決することができたり、私のアプローチでもokですか?
public class GraphNode {
protected Graph graph;
public GraphEdge addEdge(){
//some code
}
}
public class AStarNode extends GraphNode {
protected GraphEdge predecessor;
}
//The from and to properties can be either AStarNode or GraphNode
public class GraphEdge<T> extends Entity {
protected T from;
protected T to;
public someMethod(){
from.addEdge(this);
}
}
必ず私たちは、すべて同じことを話しているようにするには:宣言はGraphEdgeがジェネリック型であるため、あなたがAStarNodeに生タイプとしてそれを使用してはならない、また
する必要がありますあなたのクラス間の関係を示す短いコードスニペットを投稿してください。 –
シナリオを説明するコードをいくつか追加しました。 – Hedge