我正在使用scala v2.10.2; eclipse与scala插件v3.0.1;完整的错误消息是:
加载Vector $ 1,类文件'C:\ Program时出错Files \ Java \ jre7 \ lib \ rt.jar(java / util / Vector $ 1.class)'已损坏(类 找不到java.util.NoSuchElementException / key:E)
尝试扩展java.util.Stack
时发生import java.util.Stack
class MyStack[T] extends Stack[T]{}
值得注意的是java.util.Stack是java.util.Vector的子类。
答案 0 :(得分:2)
这个同样的问题可能是更大的错误报告的一部分: https://issues.scala-lang.org/browse/SI-7455
报告声明在Scala 2.10.3-RC1,Scala 2.11.0-M6
中修复我正在等待下一个稳定的scala IDE更新,然后再验证fixed(懒惰我知道),但同时简单的解决方法是简单地更改类定义以扩展scala.collection.mutable.Stack。 / p>
- 遇到这个问题的大多数人都试图使用摇摆;对于你我只能推荐尝试其中一个scala的固定版本。
答案 1 :(得分:2)
java.util.Stack
扩展了基本上已弃用的java.util.Vector
,因此也基本上已弃用(实际上 已弃用,但文档始终建议使用较新的替代方案,如果您'重新运行更新版本的Java)。 javadoc for Stack
建议改为使用java.util.Deque
interface:
Deque接口及其实现提供了一组更完整,更一致的LIFO堆栈操作,应该优先使用这个类。例如:
Deque<Integer> stack = new ArrayDeque<Integer>();
使用Deque
界面和java.util.ArrayDeque
可能会解决您的问题,因为 - 引用pretzels1337的答案 - 这似乎是Vector
特定的错误。