Parameternamen mit Reflection-API

Status
Nicht offen für weitere Antworten.

taouri

Aktives Mitglied
Hallo zusammen,

ich wusste nicht, wo das hier hingehört, deswegen habe ich es mal zu den allgemeinen Fragen gestellt.
Also, ich bin gerade dabei mit der Reflection-API von Java zu arbeiten. Das klappt an sich auch ganz gut aber eine Sache stört mich: Ich habe keine Ahnung, wie ich die Namen von Parametern herausbekommen kann. Auch im Sun-Tutorial habe ich nichts brauchbares gefunden. Muss ich auch noch den SourceCode analysieren? Soweit ich es aus der API erkennen kann, kann man nur den Typ eines Aufrufparameters bestimmen, nicht aber den Namen.
Mein Problem ist jetzt, dass ich ein Programm schreibe, das automatisch aus Klassen UMLs erzeugt. Und für ein UML-Diagramm wäre es schon sinnvoll zu wissen, wie der jeweilige Parameter denn heißt. Gibt es da irgendeine Möglichkeit?

Danke schon mal, Gruß

taouri
 
S

SlaterB

Gast
JavaDoc wird schließlich auch aus dem Sourcecode erstellt ;)

oder siehe auch AutoComplete von Eclipse wenn kein Quellcode/ JavaDoc vorhanden ist:

Session s = null; (Hibernate-Session)
s.createCriteria(Class arg0, String arg1);
 

tfa

Top Contributor
SlaterB hat gesagt.:
oder siehe auch AutoComplete von Eclipse wenn kein Quellcode/ JavaDoc vorhanden ist:

Session s = null; (Hibernate-Session)
s.createCriteria(Class arg0, String arg1);
Das hat damit nichts zu tun. In Class-Datei können auch die Namen der Parameter (und lokalen Variablen)
abgespeichert werden (Debug-Info). Bei Code-Completion werden diese Informationen verwendet. Quellcode brauchst du nicht.
 

taouri

Aktives Mitglied
Danke für die schnellen Antworten.
Schade eigentlich... Ich dachte, da ja die Felder Namen haben, müssten auch die Namen der Parameter abrufbar sein aber nun ja. Das Ganze jetzt auch noch zusätzlich aus dem Quellcode rauszusuchen tu ich mir nicht an und ich nehme an, dass JavaDoc nicht so einfach abgerufen werden kann, da es ja soweit ich weiß keine Klasse ist, sondern eine simple exe-Datei. Außerdem kann ich nicht voraussetzen, dass der User Eclipse hat, womit auch diese Möglichkeit leider wegfällt.
Gibt es vielleicht noch andere Möglichkeiten?

Gruß

taouri
 
S

SlaterB

Gast
@tfa:
dass man die Debug-Info speichern kann ist ja ne interessante Sache,
dennoch wird das standardmäßig nicht gemacht (etwa wenn man externe Libraries einbindet),
und dass dann zwar Methodennamen gefunden werden aber keine Parameternamen ist doch genau das Thema, oder nicht?
 

tfa

Top Contributor
Also in meinem Hibernate-Jar sind die Debuginfos drin. Ich habe eine funktionierende Code-Completion mit Parameternamen, trotz fehlender Quellen. Nur darauf bezog sich mein Einwurf.
Per Reflection kann man diese Debug-Infos natürlich nicht abfragen. Das ist richtig.
 

taouri

Aktives Mitglied
Aber warum können die Namen von globalen Variablen auch wenn sie nicht final oder static sind per Reflection abgefragt werden, die Parameternamen aber nicht?
 

tfa

Top Contributor
Weil du den Namen brauchst, um die Variable (bzw. das Feld) adressieren zu können. Bei Parameternamen braucht man das nicht, da zählt nur der Typ und die Reihenfolge in der Parameterliste.
 

taouri

Aktives Mitglied
Aber wie kann dann der Code in der Methode funktionieren? Nehmen wir an ich habe eine Methode, die mit zwei Strings aufgerufen wird. Woher weiß jetzt meinetwegen eine concat-Funktion welcher String an erster und welcher an zweiter kommt. Ich meine irgendwie muss ja auch ein Parameter addressiert werden oder? Wird das dann einfach über 1.Parameter, 2.Paramter, usw. gemacht?
 

tfa

Top Contributor
Ja, die Parameternamen sind ja nur lokal gültig, also innerhalb der Methode. Die können heißen wie sie wollen. Das ist völlig unwichtig.
 

Wildcard

Top Contributor
UML aus class Dateien zu generieren halte ich für ungünstig. Nimm doch den Quellcode dafür wie all die anderen Tools auch.
 

taouri

Aktives Mitglied
Naja, mir gings halt darum, mich mal ein bisschen mit der Reflection-API zu beschäftigen. Und grundsätzlich bin ich mit dem Resultat eigenltich auch recht zufrieden. Und ehrlich gesagt habe ich keine Lust nur wegen ein paar Parameternamen noch einmal von vorne anzufangen und mich durch Quelldateien durchzuackern. Es wäre zwar ganz nett gewesen, die Namen auch noch drin zu haben, ist aber nicht zwingend nötig.
Aber auf jeden Fall vielen Dank für die schnellen Antworten.

Gruß

taouri
 

Wildcard

Top Contributor
Wie du dir bereits denken kannst, gibt es fertige Parser für Java Quelltext die dir einen vollständigen AST liefern.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Reflection gone wrong? Allgemeine Java-Themen 21
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
T Reflection - Abprüfen von Klasseneigenschaften Allgemeine Java-Themen 3
perlenfischer1984 Reflection : Element in generische Liste hinzufügen Allgemeine Java-Themen 4
J Reflection-Method Hook? Allgemeine Java-Themen 14
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
X public Getter ersetzen (Reflection?!) Allgemeine Java-Themen 3
A Reflection Problem Allgemeine Java-Themen 15
K Generic class und Reflection Allgemeine Java-Themen 2
G SecurityManager/Policy-File/Reflection Allgemeine Java-Themen 0
N Per Reflection auf (method) local inner class zugreifen? Allgemeine Java-Themen 3
E Reflection? Frage Allgemeine Java-Themen 4
B Reflection, invoke dynamisch befüllen Allgemeine Java-Themen 3
T Reflection Allgemeine Java-Themen 11
G Klassen Cast auf Argumentenklasse via Reflection? Allgemeine Java-Themen 10
H Collections Generics und Reflection Allgemeine Java-Themen 6
TheWhiteShadow Reflection-Lösung für Objektkopien Allgemeine Java-Themen 3
B Reflection: getMethods schlägt fehl (NoClassDefFoundE)) Allgemeine Java-Themen 15
P Reflection "Cast" Allgemeine Java-Themen 5
D Reflection-Performance Allgemeine Java-Themen 7
S Reflection und Generic Allgemeine Java-Themen 9
W Reflection -> getMethod bei optionalen Parametern Allgemeine Java-Themen 4
Kr0e Reflection - Instanz einer Klasse erstellen, ohne Default-Constructor Allgemeine Java-Themen 15
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
M Probleme mit Reflection Allgemeine Java-Themen 10
A Reflection Konstruktor Parameter Supertyp Allgemeine Java-Themen 2
D Vererbung, Reflection und automatischer Methodenaufruf Allgemeine Java-Themen 24
G Java Reflection Allgemeine Java-Themen 11
N Reflection: NoSuchMethodException obwohl Methode existiert Allgemeine Java-Themen 2
brunothg Problem mit Reflection Allgemeine Java-Themen 6
M reflection in inner classes Allgemeine Java-Themen 7
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
V Reflection - Field-Instanz und Annotations Allgemeine Java-Themen 6
Y Reflection und "extends" Schlüsselwort Allgemeine Java-Themen 3
R Reflection Problem Allgemeine Java-Themen 4
N getName() of reflection Object Allgemeine Java-Themen 4
P Reflection - Wie rufe ich die Felder einer Klasse in einer Methode der Basisklasse? Allgemeine Java-Themen 4
M Reflection Queue auslesen Allgemeine Java-Themen 6
N generic reflection Allgemeine Java-Themen 5
megachucky Java Reflection -> versteckte Felder finden? Allgemeine Java-Themen 3
MQue Reflection Exception Allgemeine Java-Themen 11
R Problem mit Reflection und Generics Allgemeine Java-Themen 3
ruutaiokwu Per Reflection membervariablen überschreiben / zuweisen / nullen Allgemeine Java-Themen 5
T Zugriff per Reflection o.ä. möglich? Allgemeine Java-Themen 18
R Reflection: Membervariablen-Initialwerte Allgemeine Java-Themen 4
G Reflection Allgemeine Java-Themen 6
V reflection in java 5 und 6 Allgemeine Java-Themen 2
C Reflection Übergabeparamter überprüfen? Allgemeine Java-Themen 3
Ark Konstruktor per Reflection nicht bekannt Allgemeine Java-Themen 4
Q Objekte durch Reflection erzeugen Allgemeine Java-Themen 18
G [Reflection + WebService] Methodenaufruf an einem Proxy Allgemeine Java-Themen 11
M reflection mit parametern Allgemeine Java-Themen 8
M Reflection Frage Allgemeine Java-Themen 7
G Code vereinfachen bei Reflection Allgemeine Java-Themen 4
I reflection get inner static classes Allgemeine Java-Themen 2
C Reflection Allgemeine Java-Themen 12
Y Reflection - wie kann ich eine Methode benutzen Allgemeine Java-Themen 4
Y Reflection - wie anwenden/benutzen bei folgendem Problem Allgemeine Java-Themen 3
P Java Reflection API - ResultDataModel ? Allgemeine Java-Themen 3
R Object Dynamisch erzeugen (Reflection API) Allgemeine Java-Themen 22
N Design-Frage: persistent machen per Reflection Allgemeine Java-Themen 3
G Reflection: aktuelle bzw umschliessende Methode? Allgemeine Java-Themen 7
G per Reflection auf private Klassenattribute zugreifen? Allgemeine Java-Themen 9
G Reflection objekt mit generics erzeugen Allgemeine Java-Themen 5
M per reflection private attributsnamen auslesen Allgemeine Java-Themen 3
G Interface - Klassen implementieren das - Reflection ok? Allgemeine Java-Themen 4
C Reflection Problem! Allgemeine Java-Themen 2
G Object cast via Reflection Allgemeine Java-Themen 8
T Reflection und Typsicherheit Allgemeine Java-Themen 5
Q Umgang mit Reflection Allgemeine Java-Themen 4
S reflection Allgemeine Java-Themen 12
X Reflection performant? Allgemeine Java-Themen 11
M Reflection und Serializable Allgemeine Java-Themen 5
A Reflection - Variablen innerhalb einer Methode ermitteln Allgemeine Java-Themen 9
F Performance von Reflection vs Statisches Coden Allgemeine Java-Themen 4
the[V]oid Primitive Arrays per Reflection erzeugen? Allgemeine Java-Themen 2
W Package via Reflection parsen Allgemeine Java-Themen 4
R Interface mittels Reflection implementieren Allgemeine Java-Themen 8
M reflection Integer != int ? Allgemeine Java-Themen 3
M reflection invoce Allgemeine Java-Themen 3
K Reflection:Zugriff auf innere Klassen Allgemeine Java-Themen 4
N NoSuchMethodException bei Reflection-Versuch, aber warum? Allgemeine Java-Themen 3
byte Methodenaufruf per Reflection? Allgemeine Java-Themen 2
M Generics und Reflection Allgemeine Java-Themen 3
M Array per Reflection manipulieren Allgemeine Java-Themen 5
M Klassen von ausserhalb des Jars per Reflection nachladen Allgemeine Java-Themen 2
thE_29 Reflection Allgemeine Java-Themen 6
M statische Methode per reflection aufrufen Allgemeine Java-Themen 2
B Frage zu Reflection Allgemeine Java-Themen 3
V Reflection - Problem Allgemeine Java-Themen 3
clemson Reflection Interface Allgemeine Java-Themen 4
G mit reflection an die felder einer klasse rankommen Allgemeine Java-Themen 4
N Reflection: An Package einer .class-Datei kommen Allgemeine Java-Themen 2
N Reflection: Feststellen ob eine Klasse abstract ist Allgemeine Java-Themen 3
B Reflection Allgemeine Java-Themen 10
C Reflection und variable casten ! Allgemeine Java-Themen 10
C Reflection - Kurze Beschreibung? Allgemeine Java-Themen 3
F Frage zum Thema Reflection Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben