2Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
567
567
EMPFEHLEN
-
Hi!
Ich möchte einen Instanz Counter erstellen, also eine Variable, die mitzählt, wie oft eine Klasse "verwendet" wird.
Kann ich einfach eine Variable x = 0 in der Klasse erstellen und im Konstruktor dann ++x einbauen? Bzw. wie kann ich dann verhindern, dass der Counter aussen vor bleibt, wenn der Standart-Konstruktor verwendet wird? Einfach den Standartkonstruktor mit "einbauen", also einen parameterlosen Konstruktor, der als einzige Anweisung ++x enthält?
Schöne Grüße,
Syrill
PS: Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt!
-
10.11.10 16:19 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
so wie du es geschrieben hast, kannst du es machen:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14
public class Test { private static int instance_count; public Test() { // synchronized für Thread-Sicherheit. synchronized (instance_count) { instance_count++; } } public Test(int anderere_parameter) { this(); } }
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Vielen Dank!

Ich hatte es dann schon versucht umzusetzten, aber hatte nicht funktioniert, weil ich eine einfache Integer-Variable verwendet hatte, statt private static int instance_count;!
Schöne Grüße,
Syrill
-
Der Code ist zwar Thread-Sicher, allerdings durch das synchronized auch sehr langsam. Im übrigen sollte man lieber einen dedizierten Monitor verwenden, statt ein primitives Feld.
Mein Vorschlag wäre:
Code java:1 2 3 4 5 6 7 8
public class Test { private static final AtomicInteger INSTANCE_COUNTER = new AtomicInteger(0); { // Initialisierungs-Block INSTANCE_COUNTER.incrementAndGet(); } }
Damit muss man sich um die Konstruktoren keine Sorgen mehr machen und die Non-Blocking AtomicInteger ist Thread-Safe und schnell.
Die Frage ist eher: Wofür braucht man sowas?
Ähnliche Themen
-
Instanz einer Klasse in anderer Klasse verwenden
Von Lunatic im Forum PHPAntworten: 7Letzter Beitrag: 24.05.10, 14:19 -
Innerhalb einer Klasse eine Instanz einer anderen Klasse
Von HackerNeo im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 17.11.09, 13:08 -
Instanz einer Klasse über deren Namen erzeugen
Von Marcel G im Forum PHPAntworten: 3Letzter Beitrag: 18.12.07, 15:38 -
counter realisieren
Von Luda im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 22.12.03, 21:30 -
sql handle als instanz einer klasse per konstruktor
Von Transmitter im Forum PHPAntworten: 4Letzter Beitrag: 28.10.02, 00:47





Zitieren

Login





