java - 链表错误

标签 java linked-list stack

代码“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();
        }
    }
}

最佳答案

您将 MyStack 定义为 LinkedListStack 的内部类,这意味着它需要实例化一个封闭实例(LinkedListStack 类):

MyStack<Integer> stack = new LinkedListStack().new MyStack<>();

或者您可以将 MyStack 更改为嵌套类,它不需要封闭实例:

static class MyStack<E extends Number>
{
    ...
}

这样您就不需要更改您的main

关于java - 链表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49853479/

相关文章:

java - 一个 Spring Boot 应用程序中应该只存在一个 Spring Cloud Function 吗?

java - 将十六进制转换为特殊字符 (Java)

c - 如何修复 'Use of uninitialised value' 以及如何找到泄漏位置?

释放后检查结构体是否释放

c++ - 链表数组大小不同

c - 如何使用内联汇编从堆栈中获取信息以在 C 中编程?

javascript - 你能调用一个在调用者上下文中返回的函数吗?

java - 将类添加到 Param 标签 - Java Applet

java - ListView setAdapter() 空指针异常(使用 Inflator)

python - 如何找到将项目移动到堆栈中某个位置的最小移动次数?