java链接列表错误
代码“new Mystack<;>;();”是红色下划线,我发现了编译器错误: “无法访问LinkedListStack类型的封闭实例。必须使用LinkedListStack类型的封闭实例来限定分配(例如x.new A(),其中x是LinkedListStack的实例)。”
但我不明白这个信息,怎么了
import java.util.LinkedList;
public class LinkedListStack {
public static void main(String[] args) {
MyStack<Integer> stack = new MyStack<>();
}
class MyStack<E extends Number>
{
private LinkedList<E> elements = new LinkedList<>();
public void push(E item) {
elements.add(item);
}
public E pop() {
return elements.removeFirst();
}
public E peek() {
return elements.getLast();
}
}
}
# 1 楼答案
您将
MyStack
定义为LinkedListStack
的内部类,这意味着需要实例化一个封闭实例(属于LinkedListStack
类):或者您可以将
MyStack
更改为嵌套类,该类不需要封闭实例:这样,您就不需要更改
main
# 2 楼答案
您正在声明一个嵌套类,该类绑定到封闭类,因此需要该类的实例:
https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
将关键字
static
添加到MyStack
的定义中