6 Stimmen

Ist es möglich, mehrere Instanzen von statischen Variablen zu haben?

Statische Variablen haben nur Instanz (d.h. sie sind Teil der Klasse). Beispiel: Math.pi

Gibt es eine Möglichkeit, dass es mehrere Instanzen von statischen Variablen gibt? Ich habe gehört, dass es etwas mit Classloadern zu tun hat?

15voto

Stephen C Punkte 665668

Wenn Sie feststellen, dass Sie mehrere Instanzen einer statischen Variablen benötigen, ist dies ein deutlicher Hinweis darauf, dass Sie statische Variablen gar nicht erst verwenden sollten.

Ja, wenn dieselbe Klasse in verschiedenen Klassenladern geladen wird, dann hat jede Kopie der Klasse ihre eigenen statischen Eigenschaften. Der einzige Code, der sich statisch auf diese Statik beziehen kann, sind die Klassen, die von demselben Classloader geladen werden. Und natürlich sieht dieser Code nur (statisch) die Statik in einer Kopie der Klasse. Sie haben also wahrscheinlich nicht viel erreicht.

Anstatt sich mit Classloadern herumzuschlagen, sollten Sie Ihren Code so umgestalten, dass die statischen Variablen zu Instanzvariablen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X