Reflections und inherited Fields

Status
Nicht offen für weitere Antworten.

SnooP

Top Contributor
Ich muss euch leider weiter mit meinen Reflection-Problemen nerven ;)

und zwar möchte ich gerne auf Felder zugreifen, die von einer Oberklasse geerbt wurden.
Die Methode getFields() von Class liefert mir zwar alle public Felder der Oberklasse, nicht jedoch die protected oder package-private Felder. Und getDeclaredFields liefert mir nur alle Felder der Klasse selbst, nicht jedoch die der Oberklasse...

Wenn ich jetzt aber Objekte kopieren möchte, deren Felder in der Oberklasse relevant sind (wie z.B. beim StringBuilder mit dem Attribut value...), dann komm ich momentan nicht wirklich weit...

irgendwelche ideen? Könnte man dynamisch casten, wenn es eine oberklasse gibt, so dass man an die Felder kommen könnte? Und würde eine Zuweisung dann überhaupt funktionieren?....
 

thE_29

Top Contributor
Du musst getClass().getSuperClass() sagen!

Da musst du halt soweit gehen wie du musst/willst!

Hatte das Problem auch mal :bae:
 

SnooP

Top Contributor
jo klasse - ich probier grad schon rumm ;) - wurde nur von den Aussis abgelengt, die tatsächlich noch zwei Tore geschossen haben... der Hammer ;)

ich bin mal gespannt, ob das tatsächlich funktioniert am ende ;)
 

Wildcard

Top Contributor
Übrigens: da ich auch schon kurz davor war ein Reflection-Deep-Copy zu schreiben währe ich an deinen Sourcen interessiert (sofern du sie hergeben willst natürlich) :D
 

SnooP

Top Contributor
okay es hat jetzt geklappt... bislang läuft das deep-copy mit zyklus-Erkennung, Array-Copy und seit Neuestem auch mit den inherited fields...
Jetzt muss ich noch mögliche Exoten suchen, wie enums oder inner-classes, ob das irgendwie anders wird ;) - aber bislang siehts gut aus.
Die Sourcen geb ich selbstverständlich gerne raus - will nur noch die paar Sachen nachgucken und wenn alles klappt, werd ich das Zeug hier irgendwo posten... ;)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben