【发布时间】:2020-07-27 18:29:10
【问题描述】:
我正在尝试让堆栈在接近最新的 Java (Java 13) 时工作。
类似:
Stack<String> stack = new Stack<String>();
我得到的错误信息是
类型Stack不带参数
但是,我在网上看到的所有例子都是带参数的。
我应该如何构建(非原始)堆栈?
=====++=========
附录:
所以,我通过导入让它正常工作:
导入 java.util.Stack;
这很奇怪,因为我已经有一个导入:
导入 java.util.*;
无论如何,我不会费心去进一步弄清楚它,因为它现在可以工作了。
【问题讨论】:
-
那是您的确切代码吗?或者你在做类似
... = new Stack<String>(someObject); -
首先,
Stack<>是库类还是你自己的代码?此外,从 Java 7 开始,您不必在构造函数中指定泛型参数,因为它们可以被推断出来。我不知道 Java 13 有那么好,但是如果使用泛型参数不仅没用,而且在这个版本中也被禁止了怎么办?无论如何,我会尝试改用new Stack<>() -
1) 确保您导入了
java.util.Stack,而不是其他一些堆栈实现,并且您还没有创建自己的名为Stack的类。 --- 2)Stack的javadoc 建议你使用Deque/ArrayDeque代替("Deque interface and its implementations should be used in preference to Stack"). -
请提供minimal reproducible example,我们可以复制/粘贴并得到您所询问的相同错误。
-
Java 13 javadoc for Stack 确认它仍然是现代 Java 中的参数化类。假设我们使用的是 java.util.Stack 而不是其他任意实现。