Reflection

Javt

Aktives Mitglied
Hi,

Die Methode "getDeclaredMethods()" gibt mir die Methoden leider nicht in der von mir festgelegten Reihenfolge, in der sie in der Klasse stehen, sondern in einer ganz anderen Reihenfolge. Wie kann ich das Problem lösen?

lg
 

Lumaraf

Bekanntes Mitglied
In der Dokumentation steht zu der Methode folgendes.
The elements in the array returned are not sorted and are not in any particular order.

Wenn du also irgendwie eine Reihenfolge da reinbekommen willst wäre wohl die beste Möglichkeit jeder Methode über eine Annotation einen Sortierschlüssel anzufügen.

Java:
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface MethodSort {
	public int value();
}
 

Noctarius

Top Contributor
Die Frage: Wieso sollte man eine Methodenreihenfolge brauchen steht damit weiterhin im Raum. Mir würde keine Anwendung dafür einfallen.
 
K

knorkator

Gast
@TO
Und WARUM brauchst du eine bestimmte Reihenfolge ? Man kann doch durch das Array gehen (mit foreach) und dann über Method.getName() den Namen bekommen. Hat man mehrere Methoden mit dem selben Namen aber unterschiedlichen Parametern kann man diese entweder durch verschiedene andere Methoden von "Method" herrausbekommen oder sollte sich über Class.getDeclaredMethod(...) gleich die richtige besorgen.

Ich denke mal der Grund für die "Reihenfolge nach Source" ist das du dir den Aufwand sparen willst die richtige Methode aus dem Array zu suchen sondern lieber mit einem Index arbeiten würdest den du aus dem Source ableiten kannst. Da aber der Compiler noch so einiges optimiert und es auch unterschiedliche ClassLoader-Implementierungen gibt lass dir gesagt sein : vergiss es. Entweder hol dir gleich die richtige Methode oder gehe durchs Array. Auf Source-basis eine feste Reihenfolge festlegen dürfte entweder gar nicht oder nur mit extrem hohen Aufwand machbar sein. Zu mal das dann so krass Reflections wäre wie man es eigentlich gar nicht einsetzen sollte.

[ot]Klar macht die VM intern genau das selbe, aber man sollte es als Entwickler vermeiden so viel so krass mit Reflections rumzuspielen.[/ot]
 

BitBoy

Aktives Mitglied
Bin ja weis Gott nicht der Geek,
aber kann mir nicht vorstellen, dass eine Methode über einen Index aufgerufen, schneller/besser reagiert als über den Namen. Ich schreib meine Methoden so wies für mich wenig zum scrollen gibt, über die Folge oder eine evtl. Folge wie es abgerufen wird, hab ich mir noch nie Gedanken gemacht.
Zumal ich beim debuggen z.b. die Methoden effektiv in der Reihenfolge habe wie ich Sie aufrufe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
B Reflection ändern von Objekten in Objekten Java Basics - Anfänger-Themen 12
G Vererbung Sicherheitslücke? Reflection sieht members, die nicht sichtbar sein sollten?! Java Basics - Anfänger-Themen 11
S reflection und felder Java Basics - Anfänger-Themen 12
B .class-File mit Reflection auslesen Java Basics - Anfänger-Themen 8
X Parameterübergabe per Reflection Java Basics - Anfänger-Themen 10
U Reflection Benutzung Java Basics - Anfänger-Themen 2
B Reflection Java Basics - Anfänger-Themen 8
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
X reflection api Java Basics - Anfänger-Themen 5
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
lumo java reflection Java Basics - Anfänger-Themen 7
J Reflection Java Basics - Anfänger-Themen 2
J Reflection Java Basics - Anfänger-Themen 3
P Reflection - Class Not Found Exception Java Basics - Anfänger-Themen 3
A Frage zu Reflection Java Basics - Anfänger-Themen 8
A abgeleitete Klassen mit Reflection holen Java Basics - Anfänger-Themen 2
M Reflection Java Basics - Anfänger-Themen 8
W Problem bezüglich reflection Java Basics - Anfänger-Themen 11
S verschiede constructoren über reflection Java Basics - Anfänger-Themen 3
V Reflection API - getter und setter Java Basics - Anfänger-Themen 7
JFeel-x Frage zu reflection Java Basics - Anfänger-Themen 12
J Reflection Basic Java Basics - Anfänger-Themen 26
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
T von Reflection zum Thread? Java Basics - Anfänger-Themen 5
G Vorteile Reflection bezüglich MVC-Pattern Java Basics - Anfänger-Themen 9
G Reflection - Klasse laden aus anderem Verzeichnis Java Basics - Anfänger-Themen 4
L Reflection-fehlermeldung Java Basics - Anfänger-Themen 12
E Klassenaufrufe dynamisch mit Reflection Java Basics - Anfänger-Themen 4
S wer oder was ist reflection? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben