所以我有一些代码可以:
abstract class Node< T extends Comparable<T>, N extends Node<T, N> >
{ ...
}
所以我说得对,在这个Node对象中使用类型T时,类型T必须具有可比性?此外,N扩展Node只是意味着当在此Node对象中使用类型N时,N必须是具有T和N属性的Node?是的,这听起来很复杂,但我的解释是否正确?谢谢!
答案 0 :(得分:0)
是的,这是对的。但是......我认为Node是一个像树节点的节点,对吧?不幸的是,使用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;
}
在这种情况下,您将遇到{strong>完整树的Node<Integer,?>
处于活动状态的问题。树中的每个节点都必须只包含整数,因为你再次强制子级和父级只包含整数!