我有一个 TreeNode 类定义如下:
class TreeNode<T extends MyClass> {
public T element;
public TreeNode<? extends MyClass> parent;
public ArrayList<TreeNode<? extends MyClass>> children;
}
我想知道是否有更简单的方法将所有 TreeNodes 限制为扩展的泛型类型变量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;