instanceof für unbekannte Klassen

Cymatoxa

Mitglied
Hi, ich hab ein ziemlich seltsames Problem:
ich hab eine Liste, in der verschiedene Objekte sind.
Ich möchte jetzt alle Objekte herausfiltern, die von einer bestimmten Klasse erben.
Konkret: Ich habe eine Klasse zum verwalten von Objekten, die alle von Point erben.
Ich will einen Punkt haben, der maximal dist vom Punkt p entfernt ist und von der Klasse c erbt. Das ist allerdings mein Problem.
Java:
public static Point getObject(Point p, double dist, Class c) {
   Point point;
      for (int i=0; i<LIST.size(); i++) {
         point = LIST.get(i);
         if (p.distance(point) <= dist && point instanceof c) { // wird nicht akzeptiert
            return point;
         }
      }
   return null;
}
Wie kann ich bestimmen, ob mein Punkt von der übergebenen Klasse erbt? (getClass.equals(c) reicht nicht)
Habt ihr eine Idee?

Liebe Grüße,
Cymatoxa
 
Du kannst ganz einfach mit instanceof abfragen ob ein Objekt eine bestimmte Instanz von einer Klasse (od. Interface) ist:

Java:
                    Object obj = new Point();
                    if(obj instanceof Point) {
                        
                    }

Der Code von Dir ergibt so wenig sein. Es wäre interessant wie deine Liste aussieht - enthält diese zB nicht nur Point-Objekte, müsstest Du in Zeile 4 eine ClassCastException bekommen. Du kannst ein Objekt das nicht vom Typ Point ist nicht einfach einem Point zuweisen.

Der Class-Parameter (c) kannst Du dann eigentlich auch weglassen.
 
Zuletzt bearbeitet von einem Moderator:
Zurück