私はこのコードをした:私は(ソース上でこのエラーを取得する互換性のないタイプのジェネリックJavaの
import java.util.LinkedList;
public class Node<T> {
private T data;
private LinkedList<T> children;
public Node(T data) {
this.data = data;
this.children = new LinkedList<T>();
}
public T getData() {
return this.data;
}
public LinkedList<T> getChildren(){
return this.children;
}
}
public class Graph <T> implements Network<T> {
private Node source;
private Node target;
private ArrayList<Node> nodes = new ArrayList<Node>();
public Graph(T source,T target) {
this.source = new Node(source);
this.target = new Node(target);
}
public T source() {
return source.getData();
}
public T target() {
return target.getData();
}
)とターゲット():必要なTは、java.lang.Objectの理由を発見しましたか? getData()関数の戻り値の型が、それはこれらがNode<T>
あるべきT(戻りのジェネリック型)
に
Node<T>
とNode
を交換してください:// stackoverflowの。 com/questions/4121179/casting-objects-to-t-type – Aviコンパイラは、それらが同じ 'T'であることをどのように知っていると思われますか?明示的にそれを次のように宣言する必要があります: 'Node source;ノードターゲット; ' –
Obicere
@Obicereありがとうございます! – HKing