Hallo Frank und Felix
Eigentlich sagt mir der Betreff überhaupt nichts und er ist auch
nicht dazu da, dort die komplette Frage unterzubringen.
Na, ganz cool bleiben!
Das geht so wie du es dir vorstellst überhaupt nicht.
Einspruch, Euer Ehren.
import java.util.ArrayList;
import java.lang.ref.SoftReference;
public class Animal
{
//Liste aller Tiere
private static ArrayList tiere = new ArrayList();
//Name des Tiers
private String name;
//neues Tier
public Animal(String s)
{
//Tier zur Liste hinzufügen.
tiere.add(new SoftReference(this)); //SoftReferences werden vom garbage collector nicht berücksichtigt.
name = s; //Name des Tiers
}
//Methode do_something auf alle Tiere anwenden
public static void all_do_something()
{
System.gc(); //garbage collector ausführen um sicher zu stellen, das alle nicht mehr benötigten Instanzen entfernt werden.
for(int a = 0; a < tiere.size(); a++)
{
if(((SoftReference)tiere.get(a)).get() == null)//Wenn die Instanz nicht mehr existiert
{
tiere.remove(a);//tier aus der liste löschen
a--;
}
else
{
((Animal)((SoftReference)tiere.get(a)).get()).do_something();//sonst do_something aufrufen
}
}
}
public void do_something()
{
System.out.println(name);//Name des tiers ausgeben.
}
}
Tschüs,
Daniel
Unmöglich ist nichts - außer die Lösung zu fnden.