2016-05-23 5 views
1

だから、私はありませんいくつかのコードを持っている拡張します匹敵します?また、N extends Nodeは、タイプNがこのNodeオブジェクトで使用されるとき、NはTおよびNのプロパティを持つノードでなければならないことを意味しますか?ええ、それは複雑に聞こえますが、私は私の解釈で正しいですか?ありがとう!ジェネリック医薬品とのトラブルとは

+0

この定義はコンパイルされません。どこかでかぎ括弧が欠けているので、更新してください。 – Renato

+0

編集だけで更新されました。それはあなたが意味することですか? – chris123

+0

まだコンパイルされません。 – Renato

答えて

0

はい、そうです。しかし...私はノードがツリーノードのようなノードであると解釈します、そうですか?残念ながら、子と親の型のような現在の値をNに使うのは悪い考えです。この場合

abstract class Node<T extends Comparable<T>, N extends Node<T, N>> { 
    private Set<N> children = new LinkedHashSet<N>(); 
    private N parent = null; 
    private T nodeValue = null; 
} 

あなたはNode<Integer,?>完全なツリーに対してアクティブであるという問題があります。子供たちと両親にはIntegersだけを含むように再帰的に強いるので、ツリー内のすべてのノードにはIntegersのみが含まれていなければなりません!

関連する問題