我的Java編譯器javac 1.6.0_37
未能在編制以下的小程序:Java編譯器意外的 「不兼容的類型」 錯誤
import java.util.*;
public class QueueTest {
public static void main(String args[]) {
Queue<String> q = new LinkedList<String>();
}
}
的錯誤信息是:
QueueTest.java:5: incompatible types
found : java.util.LinkedList<java.lang.String>
required: Queue<java.lang.String>
Queue<String> q = new LinkedList<String>();
^
1 error
根據該文件,LinkedList<E>
實現Queue<E>
,這應該編譯。我能夠用javac 1.5.0_08
編譯此代碼。此外,您可以從圖片中取出泛型,問題仍然存在(即使沒有泛型,也不會編譯)。
我的問題是:任何人捍衛這不是一個錯誤的立場?
你嘗試明確'的java .util.Queue q = new java.util.LinkedList ();'?也許你在目前的軟件包中有其他一些類'Queue '或什麼東西,它會攪亂一切? –
amit
您正在使用哪種類型的「隊列」對象?你有自己的'Queue'類嗎?從文檔看,沒有理由認爲這是行不通的。 – Makoto
請注意,所需的類型是'Queue',而不是'java.util.Queue '。刪除默認包中類路徑中的Queue類。永遠不要使用默認包。 –