抽象方法getNextNode生成错误,“无法对非静态类型节点进行静态引用”,但仅限于LinkedList参数化。如果我从LinkedList中删除泛型,则错误消失。为什么呢?
public class LinkedList<T> {
Node head;
public LinkedList() {
head = new Node();
}
private class Node {
}
interface stuff {
public Node getNextNode();//ERROR Cannot make a static reference to the non-static type Node
}
}
答案 0 :(得分:2)
由于错误试图告诉您,您不能使用没有参数的通用类型。
Node
实际上是LinkedList<T>.Node
。由于您的界面不是通用的(界面不会从包含的类继承类型参数),因此它没有T
可以替代。
您可以通过创建Node
类static
来解决此问题,以便它不会从其包含的类继承type参数。
但是,您实际上并不想这样做,因为Node
应该是通用的。
您实际上也需要使您的界面通用,以便它可以指定T
。
答案 1 :(得分:0)
Node
的{{1}}缩写LinkedList<T>.Node
以及getNextNode()
并不知道T
是什么。
答案 2 :(得分:0)
add_dependencies