Objectif: Obtenir la signature de méthode publique (valeur de retour, paramètre, nom de méthode) à partir des fichiers de bytecode java. J'utilise le framework ObjectWeb ASM. Problème: J'ai analysé la spécification API de l'ASM et essayé plusieurs exemples, mais je ne sais toujours pas comment obtenir la signature. La classe MethodNode
possède un champ de signature, mais la valeur est null.Comment obtenir la signature de méthode avec ObjectWeb ASM?
6
A
Répondre
11
Vous pouvez essayer quelque chose comme ceci:
ClassReader cr = new ClassReader(is);
cr.accept(new EmptyVisitor() {
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
if((Opcodes.ACC_PUBLIC & access)>0) {
System.err.println("method name: " + name);
System.err.println("return type: " + Type.getReturnType(desc));
System.err.println("argument types: " + Arrays.toString(Type.getArgumentTypes(desc)));
}
return super.visitMethod(access, name, desc, signature, exceptions);
}
}, 0);
Questions connexes
- 1. maillot NoClassDefFoundError: org/objectweb/asm/ClassVisitor exception
- 2. Configuration d'annotation de ressort java.lang.NoClassDefFoundError: org/objectweb/asm/util/TraceClassVisitor
- 3. Jersey + Hibernate = NoSuchMethodError: org.objectweb.asm.ClassReader.accept (LORG/ObjectWeb/asm/ClassVisitor
- 4. Puis-je lancer une exception basée sur la signature de la méthode dans ASM?
- 5. Jolie impression d'une méthode en ASM Bytecode
- 6. signature de la méthode AdressOf
- 7. appeler une méthode avec la signature
- 8. Écouteur d'exécution de la méthode ASM
- 9. Comment créer la méthode avec la signature comme Liste
- 10. Spring + Hibernate sur Google Apps Engine erreur (java.lang.NoClassDefFoundError: org/objectweb/asm/ClassWriter)
- 11. Obtenir la signature de l'utilisateur
- 12. ASM instrumentation bytecode pour l'entrée de la méthode/sortie
- 13. Signature de méthode réelle utilisant la réflexion
- 14. Comment puis-je obtenir la signature de méthode VM d'une méthode dans Eclipse?
- 15. ASM Bytecode avec HttpURLConnection
- 16. ASM, les fonctions d'appel avec asm
- 17. Comment créer une variable locale avec ASM?
- 18. Comment obtenir le nom ou la signature de la méthode actuelle dans un NSString?
- 19. signature de la méthode de l'objet géré
- 20. Méthode équivalente Java de la méthode de signature XML C#
- 21. Comment générer une signature de méthode?
- 22. Comportement des ellipses (...) dans la signature de méthode avec Iterable?
- 23. @ModelAttribute méthode annotée AVEC @ModelAttribute dans la signature de la méthode
- 24. Incompatible Signature de la méthode du noyau
- 25. Comment implémenter la méthode de signature de tableau dans tapuscrit
- 26. Construit dans la signature de la méthode - Python
- 27. vérifier si l'objet a méthode avec la signature du délégué
- 28. Signature de méthode dans REPL
- 29. Méthode Signature Problème
- 30. Java ASM Visiter une méthode plusieurs fois