今私は実装していますTree<T>
抽象クラス(<T>
は、ルートノードのデータ値を参照)、現在はこのようなものがあります:あなたのようJavaの抽象クラス/インタフェースと指定型パラメータ
public abstract class Tree<T> {
public void setChild(int index, ??? childTree);
public void deleteChild(int index, ??? childTree);
public T getData();
public void setData(T value);
}
を見ることができる、私は問題を子木のための正しいタイプを考え出している。理想的には、私はこの
public abstract class Tree<T> {
public void setChild(int index, ImplementingClass childTree);
public void deleteChild(int index, ImplementingClass childTree);
...
}
ような何かをしたいしかし、私は(おそらくドキュメントを再読み込みしようとして)これを実行するかどうかはわかりません。私が考えている現在のソリューションは、この
public abstract class Tree<T, C extends Tree> {
public void setChild(int index, C childTree);
public void deleteChild(int index, C childTree);
...
}
のようなものです。しかし、より正確な解決策は、子ツリーは現在のツリーと同じクラスなければならないことを指定することです。これをJavaで指定する方法はありますか?
何が 'T'ですか? – sidgate
Javaには自己タイプはありません。あなたが心に持っているものは大抵正しいと思われます。 'Tree>'でなければなりません。 –
shmosel
本当に同じ実装にする必要はありますか?十分なパラメータとして 'Tree'を持っていないのですか? –