Daniel Thoma: Methode auf jedem Object einer Klasse aufrufen

Beitrag lesen

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.