2017-03-04 1 views
2

aufgerufen Ich brauche die Methode Parameternamen mit Asm 5.2. Meine Quellen sind Java 1.8. Mit Blick auf das Javadoc von MethodVisitor#visitParameter scheint es, dass dies genau das ist, was ich brauche:visitParameter of MethodVisitor wird nie

Besucht einen Parameter dieser Methode.

Aber diese Methode wird nie aufgerufen. Ich dachte, es könnte mit fehlenden Debugging-Informationen zusammenhängen, also kompilierte ich die Klassen mit -g:source,lines,vars, aber das half auch nicht.

Ich verwendete visitLocalVariable, aber für den Zweck des Dienstprogramms, das ich schreibe, ist mir der Code der Methode egal, so dass ich die ClassReader.SKIP_CODE der ClassReader-Methode akzeptierte.

Ich vermisse ich etwas? Gibt es eine Möglichkeit, die Parameternamen zu erhalten, ohne den Code zu besuchen.

Antwort

2

Sie müssen Ihre Klasse mit der -parameters Option kompilieren, um javac die Parameternamen enthalten. Aus diesem Grund wird die Methode nie aufgerufen, ohne die Option, dass Ihre Parameternamen nicht enthalten sind.

Alternativ können Sie für die Parameternamen the visitLocalVariable method überprüfen. Bei nicht-abstrakten Methoden mit Debug-Symbolen sind die Parameternamen hier enthalten.

+0

die '-Parameter'-Option hat es geschafft, danke! – yasko