2013-07-30 51 views
0

我正在使用scala v2.10.2; eclipse with scala plugin v3.0.1;完整的錯誤消息是:加載矢量$ 1,類文件 'C:\ PROGRAM 文件\的Java \ jre7 \ LIB \ rt.jar中(Java/UTIL /矢量$ 1.class)'

錯誤被打破(類 java.util.NoSuchElementException /關鍵未找到:E)

它試圖擴大java.util.Stack中

import java.util.Stack 
class MyStack[T] extends Stack[T]{} 

值得一提的是,java.util.Stack中的一個發生時java.util.Vector的子類。

回答

2

java.util.Stack延伸基本上棄用java.util.Vector,因此也基本上棄用(他們不是實際上過時,但該文檔總是建議使用較新的選擇,如果你正在運行的Java的更新版本)。所述javadoc for Stack建議使用java.util.Deque interface代替:

的更完整和一致的組LIFO堆棧操作的是由雙端隊列接口和其實施方式中,應優先使用此類提供。例如:Deque<Integer> stack = new ArrayDeque<Integer>();

使用Deque接口和java.util.ArrayDeque可能會解決你的問題,因爲,指pretzels1337的答案,這似乎是一個Vector特異性的bug。

2

eThis同樣的問題可能是一個更大的錯誤報告的一部分: https://issues.scala-lang.org/browse/SI-7455

固定在斯卡拉2.9.3-RC1的報告稱,斯卡拉2.11.0-M6

我在等待下一個穩定的scala IDE更新在驗證固定之前(懶惰我知道),但在此期間簡單的解決方法是簡單地將類定義更改爲擴展scala.collection.mutable.Stack。

- 大多數人遇到這個問題都試圖使用擺動;對於你我只能推薦嘗試一下scala的固定版本。