2011-06-21 7 views
3

Étant donné que je le nécessaireconstructeur EnumMap not found

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

et

enum Terrain { ... } 

puis pour autant que je peux dire de la documentation, cela devrait fonctionner

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

mais il me donne effectivement cette erreur

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

Qu'est-ce qui me manque?

Répondre

10

Le code que le compilateur cite ne correspond pas à ce que vous avez prétendu avoir. Il semble que vous ne soyez pas en fait fournissant un argument au constructeur. Cela fonctionne correctement, par exemple:

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

Ah, vous avez raison, ce qui s'est réellement passé, c'est que Netbeans (6.9) avait commencé à ne pas reconnaître le fichier source comme modifié et ne l'a donc pas sauvegardé, même s'il y était explicitement dirigé. Aucune idée pourquoi Netbeans a glissé comme ça, mais copier coller à UltraEdit et économiser à partir de là, a résolu le problème. – rwallace

1

L'erreur indique un constructeur sans arg.

Etes-vous sûr que vous regardez le bon code/l'avez recompilé?