Objektzahl
-
Hallo
Ich moechte eine methode in meine Klasse schreiben, die die Anzahl der Objekte diesewr methode liefert.
Es ist mir klar wie das geht:
Klassenvariable, in den Construktoren erhoehen.
Aber wie kann ich in der klasse feststellen, dass ein objekt geloescht wurde?
-
Versuchs mal mit der finalize-Methode als Gegenstück zum Konstruktor. Dort kannste deinen Referenz-Counter ja sukzessive rücksetzen wie in diesem Beispiel hier:
[java]public class FinalizationTest
{
public static int refCount=0;public FinalizationTest() {
refCount++;
}public void finalize() throws Throwable {
refCount--;
}public static int getRefCount() {
return refCount;
}public static void main (String args[]) {
FinalizationTest ft1 = new FinalizationTest();
FinalizationTest ft2 = new FinalizationTest();
FinalizationTest ft3 = new FinalizationTest();
System.out.println("There are "+FinalizationTest.getRefCount()+" instances ...");
ft1=null;
ft2=null;
System.gc();
System.out.println("There are "+FinalizationTest.getRefCount()+" instances ...");
}
}[/code]
P.S: Auch wenn System.gc kein Garant dafür ist dass der GC arbeitet so hat er bei mir im Beispiel immer gegriffen. Das liegt denke ich wohl auch an der komplexität des vorliegenden Codes - diese ist ja extrem gering[ Dieser Beitrag wurde am 08.05.2003 um 15:15 Uhr von CengizS editiert. ]
-
Danke!!