Ich möchte eine Klasse mit einem privaten statischen Datenelement haben (einem Vektor, der alle Zeichen az enthält). In Java oder C # kann ich einfach einen "statischen Konstruktor" erstellen, der ausgeführt wird, bevor ich Instanzen der Klasse erstelle, und die statischen Datenelemente der Klasse einrichten. Es wird nur einmal ausgeführt (da die Variablen schreibgeschützt sind und nur einmal festgelegt werden müssen) und da es eine Funktion der Klasse ist, kann es auf seine privaten Mitglieder zugreifen. Ich könnte dem Konstruktor Code hinzufügen, der prüft, ob der Vektor initialisiert ist, und ihn initialisiert, wenn dies nicht der Fall ist, aber dies führt viele notwendige Prüfungen ein und scheint nicht die optimale Lösung für das Problem zu sein.
Mir fällt der Gedanke ein, dass die Variablen, da sie schreibgeschützt sind, nur öffentliche statische Konstanten sein können, sodass ich sie einmal außerhalb der Klasse festlegen kann, aber es scheint wieder einmal ein hässlicher Hack zu sein.
Ist es möglich, private statische Datenelemente in einer Klasse zu haben, wenn ich sie nicht im Instanzkonstruktor initialisieren möchte?