Zählfunktion

Status
Nicht offen für weitere Antworten.

Sunny81

Aktives Mitglied
Weiss jmd vllt wie man eine Zählfunktion schreiben könnte, die mir erzeugte Objekte zählt?
Danke
 

eRaaaa

Top Contributor
eine statische variable

static int counter;

und diese im konstruktor hochzählen.

oder eine extra klasse/objekt erstellen ObjektVerwaltung o.ä. die die anzahl der objekte kennt.
 

Noctarius

Top Contributor
Java:
class Foo {
  private static int counter;
  
  public Foo() {
    counter++;
  }
}

Bei Multi-Threadding sollte man da allerdings etwas mehr Acht geben.
 

eRaaaa

Top Contributor
wenn du das ganze dazu nutzen möchtest, um zu wissen, wieviele aktuelle objekte es gibt, wäre es zudem auch nicht schlecht die finalize methode zu überschreiben, und den counter dementsprechend zu dekrementieren

Java:
    @Override
    protected void finalize() throws Throwable {
        super.finalize();
        counter--;
    }
 

Noctarius

Top Contributor
Schlechte Idee eRaaaa, das ist nicht umbedingt das wirkliche Ergebnis. Die finalize()-Methode muss laut Spezifikation von der JVM nicht aufgerufen werden.
 

Noctarius

Top Contributor
Kommt auf die verwendete Umgebung an. OSGi und Spring kennen passende Events. Ohne diese Events kann man auf WeakReferences zurückgreifen, welche abgefragt werden können ob das referenzierte Objekt noch exisitert.

Denke aber beides ist hier zu hoch gegriffen ;-)
 
Status
Nicht offen für weitere Antworten.

Oben