我对以下内容感到有些困惑,并感谢您的帮助。
我想要做的是实现一个通用的循环列表,我可以从外部访问节点(而不是它们的值)。我将尝试给出一个最小化的设置来说明这一点。
jupyter notebook dream.ipynb
在另一个班级中使用:
class CircularList<T>{
Node<T> first;
/*Implementation details..., getters, setters */
public Node<T> getFirst(){ return this.first };
public class Node<U>{
/*...*/
}
}
在最后一行中,它描述了在原始类型上给出的类型参数,我并不理解。我不明白这是一种原始类型。我想通过CircularList的类型参数和getFirst返回的事实 一个节点,该类型不会是原始的,但我显然是错的。
答案 0 :(得分:3)
您没有指定CircularList
的参数:
CircularList<Vertex>.Node<Vertex> vertex = vertices.getFirst();
更新
但这并没有多大意义:你应该将类Node<U>
声明为静态,或者不指定任何参数(并使用封闭类的参数T)。
答案 1 :(得分:2)
下面:
public class Node<U>{
应该说Node
您班上已经有一个通用类型T
;显然,Ts的循环列表只应该包含T的节点。
基本上你引入了另一个第二类参数。除了&#34;混乱&#34;之外什么都不会增加。另请注意,您的内部Node类不是静态的,因此没有什么能阻止您说T的实例在T中是通用的,就像封闭列表类一样。
您的代码完全没有任何理由添加了第二个泛型参数。