2011-06-21 53 views
3

EnumMap的構造考慮到我有必要沒有找到

import java.awt.Color; 
import java.util.EnumMap; 

enum Terrain { ... } 

話,據我可以從文檔所知,這應該工作

static EnumMap<Terrain, Color> colors = new EnumMap<Terrain, Color>(Terrain.class); 

但它實際上給我這個錯誤

cannot find symbol 
symbol : constructor EnumMap() 
location: class java.util.EnumMap<Terrain,java.awt.Color> 
static EnumMap<Terrain,Color>colors=new EnumMap<Terrain, Color>(); 

我錯過了什麼?

回答

10

編譯器引用的代碼與聲明的代碼不匹配。看起來你並不是,實際上爲構造函數提供了一個參數。這工作正常,例如:

import java.util.EnumMap; 

enum Foo {} 

public class Test {  
    public static void main(String[] args) { 
     EnumMap<Foo, String> map = new EnumMap<Foo, String>(Foo.class); 
    } 
} 
+0

嗯,你說得對,實際發生的事情是Netbeans(6.9)開始無法識別源文件被修改,因此即使在明確指示這樣做時也無法保存。不知道爲什麼Netbeans會那樣小聲,但是複製粘貼到UltraEdit並從那裏保存,解決了這個問題。 – rwallace

1

該錯誤顯示無參數構造函數。

您確定您正在查看正確的代碼/已重新編譯它嗎?