2011-06-21 82 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

该错误显示无参数构造函数。

您确定您正在查看正确的代码/已重新编译它吗?