Konstruktor



  • In einer Klasse brauche ich eine Menge Kontanten in einer HashMap, die einem String eine Nummer zuordnet.

    Diese Konstanten sollen unabänderbar und static sein, dazu verwendet man in Java soviel ich weiß final statt const.

    Nun muss ich aber die Maps auch irgendwann initialisieren. Da dort eine Menge
    rein muss und ich mindestens 3 Maps brauche, möchte ich dies in einer Funktion
    initMaps tun, welche dann vom Konstruktor aufgerufen werden soll.

    Aber ich verstehe eines noch nicht so ganz:
    Hat Java eine Art Klassenkonstruktor?
    Wie rufe ich diesen auf?

    Wenn ich ein Objekt meiner Klasse erzeuge, würde ja jedes mal der KOnstruktor aufgerufen, der aber auch irgendwo meine Maps initialisieren möchte...
    Das Problem ist halt dass ich statische (Konstanten in Maps) und nicht-statische Attribute in meiner Klasse habe.

    ... kann mir das einer erklären?


  • Mod

    Hi. Du kannst entweder

    public final static HashMap<Integer> blah = createMyHashMap();
    
    private static HashMap<Integer> createMyHashMap()
    {
       //...
    }
    

    schreiben oder einen Static Initializer nutzen. Ich bin mir allerdings nicht ganz sicher, ob der auf Konstanten angewendet werden kann.


Anmelden zum Antworten