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
 
:) hab gerade die wunderschöne Methode isInstance von Class entdeckt.
Damit gehts natürlich wunderbar :D

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:
Cymatoxa hat eigentlich geschrieben, dass seine Objekte von Point erben:
Konkret: Ich habe eine Klasse zum verwalten von Objekten, die alle von Point erben.
Damit steht für mich fest, dass alle Objekte von Point abgeleitet sind.
 
Zurück