私は次のように定義されたTreeNodeクラスを持っています:
class TreeNode<T extends MyClass> {
public T element;
public TreeNode<? extends MyClass> parent;
public ArrayList<TreeNode<? extends MyClass>> children;
}
すべてのTreeNodeを拡張するジェネリック型変数に制限する簡単な方法があるかどうか知りたいMyClass
ですか?書き出すArrayList<TreeNode<? extends MyClass>>
のはとても面倒です。ArrayList<TreeNode<T>>
ツリーには、MyClassの継承が異なるノードを含めることができないため、私はそれを行うことはできません。
私はこのようなことをしようとしました:
public static const Class NODE_CLASS = TreeNode<? extends TreeNode>.class;
しかし、クラスオブジェクトの一部としてジェネリックを使用できるとは思いません。
C ++の同義語だtypedef
と思います、
つまりtypedef TreeNode<? extends MyClass> NodeClass;