ich eine Liste von Objekten, die MarkerInterface implementieren:Wie kann man überprüfen, ob ein Objekt ein Feld hat
List<MarkerInterface> list = new ArrayList<>();
Je nach Datei ich hinzufügen Person, Motorradfahrer oder Hund auf die Liste Objekte. Diese Klassen implementieren MarkerInterface.
list.add(person);
oder
list.add(dog);
oder
list.add(biker);
Einige dieser Klassen Unterklassen haben: Dog1 erstreckt Hund, Dog2 erstreckt Hund, ... Einige Klassen haben parentId Feld, andere doesn t.
Ich möchte überprüfen, ob ein Objekt ParentId-Feld hat oder nicht und drucken Sie seinen Wert, wenn es existiert. Wie geht das? Ich habe versucht:
list.get(i).getParentId();
aber es wird nicht funktionieren, weil MarkerInterface können haben getParentId() -Methode nicht (nicht alle Klassen, die MarkerInterface implementieren parentId Feld).
Sie brauchen eine andere Schnittstelle wie 'MarketWithParent extends MarketInterface' wo' getParent' definiert wird und Sie dann 'instanceof' –
Java reflection verwenden können? http://tutorials.jenkov.com/java-reflection/fields.html – ThisClark
@ThisClark. Technisch gesehen wäre OP besser dran, nach "getParent_id" als Methode und nicht als Feld zu suchen. Es besteht eine gute Chance, dass das Feld für eine gut gestaltete Klasse privat ist. –