Enum-Variable HashMap zuweisen

Diskutiere Enum-Variable HashMap zuweisen im Java Basics - Anfänger-Themen Bereich.
M

MrMcNiki

Hallo,
ich versuche gerade bei einem Enum jeder Variable eine HashMap zu initialisieren. Doch irgendwie bekomme ich das nicht so wirklich hin und nach Recherche komm ich nicht weiter.
Java:
private enum Test{
    
   // hier habe ich wohl irgendeinen Murks veranstaltet
   VAR1("variable1", new HashMap<String, Integer>(), {("hallo",1)} ),
    VAR2;
    
    private String name;
    private HashMap<String, Integer> berschreibung;
    
    
    private chosenTool(String name, HashMap<String, Integer> beschreibung){
        this.name= name;
        this.beschreibung = beschreibung;
    }
}
Was muss ich tun, damit ich die HashMap z.B. bei VAR1 initialisieren kann?
Grüße

(Ich hoffe das zählt als Java-Basic, ansonsten kann ich den Post dann auch löschen und in einem anderen Unterforum stellen)
 
M

MrMcNiki

Hm, leider hat das irgendwie nicht ganz weiter geholfen. Ich muss die HahsMap ja irgendwie direkt beim erstellen initialisieren. Kann es sein, dass ich da was unmögliches versuche? Oder soll ich einfach den Konstruktor vom enum umschreiben, sodass ich dann dem Parameter übergebe, die dann im Konstruktor die HashMap initialisieren?
 
M

MrMcNiki

Ja, und? Abschnitte 3, 4 und 5 enthalten Lösungen dazu. Du kannst auch statische Methoden verwenden.
Jetzt funktioniert es mit dieser Variante, ohne dass ich da ein static voraussetzte und ich muss vor allem zweimal geschweifte Klammern nutzen:
Java:
VAR1("test", new HashMap<String, Integer>() { { put("a", 1) ; } } ),
Alle anderen Methoden von der Seite haben leider nicht geklappt, da ich beim direkten Konstruktoraufruf keine Zuweisung mit "=" machen konnte.

Ist die von mir gewählte Art und Weise in Ordnung oder kann ich durch die unkonventionelle Art von Java irgendwelche offensichtlichen Probleme bekommen?
Trotzdem nochmals danke für den Link
 
mihe7

mihe7

Jetzt funktioniert es mit dieser Variante, ohne dass ich da ein static voraussetzte und ich muss vor allem zweimal geschweifte Klammern nutzen:
Das Problem ist, dass Du eine HashMap erwartest (s. u.)

Ist die von mir gewählte Art und Weise in Ordnung oder kann ich durch die unkonventionelle Art von Java irgendwelche offensichtlichen Probleme bekommen?
Unkonventionell ist lediglich die von Dir gewählte Variante :)

Java:
import java.util.Collections;
import java.util.Map;

public enum Test{
    
    VAR1("variable1", Collections.singletonMap("hallo", 1)),
    VAR2;
    
    private String name;
    private Map<String, Integer> beschreibung;
    
    Test() {
    }

    Test(String name, Map<String, Integer> beschreibung){
        this.name= name;
        this.beschreibung = beschreibung;
    }
}
 
Thema: 

Enum-Variable HashMap zuweisen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben