2013-11-27 48 views
5

在下面的代碼中,我在最後一行中得到編譯器錯誤:「類型列表不明確」(嘗試定義cgxHist列表)。我究竟做錯了什麼?什麼是Java中的'模糊類型'錯誤?

import java.awt.*; 
import javax.swing.*; 
import java.util.*; 

public class drawr extends JPanel{ 

    public static int animationSpeed=470; 
    public static int diameter = 50; 
    hBod allHBods[]; 
    List<String> cgxHist = new ArrayList<String>(); 

我其實是想在列表中包含整數,但是當我嘗試「投」的列表,這樣,用<int>更換<String>,在該行的誤差變得令牌‘INT’「語法錯誤,此標記後預期的尺寸'。建議請。

+1

不能使用''或代替List寫,因爲仿製藥不要不支持原始類型。例如,請參閱[此問題](http://stackoverflow.com/questions/2721546/why-dont-java-generics-support-primitive-types)瞭解更多信息。 – Mac

+0

看到這也http://stackoverflow.com/questions/36325277/why-does-system-out-printlnnull-give-the-method-printlnchar-is-ambiguo –

回答

5
java.awt.List 

java.util.List 

這兩個都存在。你必須添加的命名空間在前面使用一個:

java.util.List<String> cgxHist = new ArrayList<String>(); 

如果你不這樣做,它不知道如何解釋List<T>:是的awt一個或util? Ergo:含糊不清。

+0

感謝您的幫助。 – user2671186

12

問題是在java.awtjava.util包中都有List類,並且當您導入這些包中的所有類時,編譯器不知道您的意思。

所以,你應該或者不使用星號來導入所有的類在同一時間(只需輸入你真正需要的那些)java.util.List<String> cgxHist = new ArrayList<String>();

+0

非常感謝。我在學習,但這是一個非常緩慢的過程。 – user2671186

+0

這隻能回答問題的一半。另一個問題是基元不能與泛型一起使用 - OP將不得不使用''而不是''。 – Mac