Ich versuche einen Weg zu finden, Java zu zwingen, einen Aufzählungstyp zu laden/zu initialisieren (der in einer Klasse verschachtelt ist, die eine statische Map enthält).Erzwingen der Initialisierung eines Aufzählungstyps in Java
Dies ist wichtig für mich, weil der Aufzählungstyp einen Konstruktor hat, der die Karte auffüllt, und ohne eine explizite Möglichkeit, diese Aufzählung zu initialisieren, bleibt die Zuordnung leer. Ich habe versucht, Class.forName
zu verwenden, aber das scheint nicht zu funktionieren.
Ich denke, ich könnte eine Instanz der Enumeration erstellen (und speichern Sie sie in soem anderen Sammlung oder etwas), aber ich würde gerne wissen, ob es eine elegante Möglichkeit ist, dies zu tun.
Versuchen Wenn Sie nicht die Enum garantiert wird gebaut werden, bevor Sie die Karte verwenden müssen, könnten Sie Ihr Design hier zu überdenken wollen, obwohl Matts Empfehlung eine statische Initialisierer der Verwendung wahrscheinlich erhalten du was du willst. – Bryan
'Class.forName' initialisiert eine Klasse. Wenn es "nicht funktioniert", haben Sie andere Probleme, die Sie nicht erkennen. Warum postest du deinen Code nicht? – irreputable
Grundsätzlich sehe ich eine Ausnahme, die besagt, dass die Klasse "ungültig" ist, und ich weiß sicher, dass ich den richtigen Paketpfad habe. ist Class.forName() * vermutlich * in allen Fällen auf Enums zu arbeiten? –