0

我正在使用 scala v2.10.2;带有 scala 插件 v3.0.1 的 eclipse;完整的错误信息是:

加载 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 的子类。

4

2 回答 2

2

java.util.Stack扩展了本质上 deprecated java.util.Vector,因此本质上也被弃用了(它们实际上并没有被弃用,但如果您运行的是 Java 的更新版本,文档总是建议使用更新的替代方案)。的javadocStack建议改用该java.util.Deque接口

Deque 接口及其实现提供了一组更完整和一致的 LIFO 堆栈操作,应优先使用此类。例如:Deque<Integer> stack = new ArrayDeque<Integer>();

使用该Deque界面并且java.util.ArrayDeque可能会解决您的问题,因为 - 参考 pretzels1337 的答案 - 这似乎是一个特定的Vector错误。

于 2013-07-30T22:39:17.467 回答
2

e同样的问题可能是更大的错误报告的一部分: https ://issues.scala-lang.org/browse/SI-7455

该报告声称已在 Scala 2.10.3-RC1、Scala 2.11.0-M6 中修复

我正在等待下一个稳定的 scala IDE 更新,然后再验证固定(我知道懒惰),但同时一个简单的解决方法是简单地更改类定义以扩展 scala.collection.mutable.Stack 。

-- 遇到这个问题的大多数人都在尝试使用swing;对你来说,我只能推荐尝试 scala 的固定版本之一。

于 2013-07-30T21:47:34.133 回答