Existe-t-il un moyen d'accéder par programme aux variables définies à l'intérieur d'une méthode (toute méthode, statique ou non)? Comment l'EDI les montre-t-il lorsque vous déboguez du code?Existe-t-il un moyen d'obtenir une liste de toutes les variables déclarées dans une méthode java?
Répondre
Vous voudrez peut-être lire this cela explique assez bien cela. Le bit que vous cherchez est RemoteStackFrame, c'est comme ça que les choses peuvent avoir des choses qui sont actuellement dans la portée
C'est un sujet compliqué mais j'espère que ça aide.
Je ne sais pas l'autre IDE, mais Eclipse utilise The Abstract Syntax Tree (AST)
Si vous utilisez Eclipse, vous pouvez utiliser l'API fourni avec Eclipse JDT. Ceux-ci seront disponibles si vous allez créer un projet Plugin.
IDE utilise généralement une combinaison d'une API de débogage, telle que celle fournie par [Java Platform Debugger Architecture] [1] et sa connaissance de la structure du code qu'il débogue. La lecture des valeurs de la variable locale (même pendant le débogage) nécessite que les fichiers de classe soient compilés avec les informations de débogage. En Java (comme dans de nombreux autres langages), les informations de débogage doivent être générées explicitement pour être accessibles lors de l'exécution. Des variables spécialement locales et un mappage du bytecode aux numéros de ligne source. L'API [JDI] [2] est assez facile à utiliser pour implémenter un débogueur simple. Mais si ce que vous cherchez est une sorte de réflexion sur les variables locales, vous n'avez pas de chance. La seule chose que je peux penser pour ce dernier cas est d'utiliser une sorte de bibliothèque de manipulation bytecode comme [BCEL] [3] ou [ASM] [4] et de modifier le bytecode avant de le charger pour vous permettre d'accéder les valeurs des variables à l'exécution.
Cela ralentira sûrement le code et sera difficile à mettre en œuvre. En fin de compte, il sera probablement plus facile d'éviter le problème si vous prenez du recul et y réfléchissez.
(désolé pour les liens déchiquetés, mais StackOverflow limite le nombre de liens)
[1]: http: // java.sun.com/javase/technologies/core/toolsapis/jpda/ [2 ]: http: // java.sun.com/javase/6/docs/jdk/api/jpda/jdi/index.html [3]: http: // jakarta.apache.org/bcel/ [4] : http: // asm.ow2.org/
- 1. Existe-t-il un moyen d'obtenir une liste de toutes les classes dans une application iPhone?
- 2. Qu'advient-il des variables globales déclarées dans une DLL?
- 3. Existe-t-il un moyen de transmettre toutes les variables définies à un GroovyShell?
- 4. PHP afficher les noms de toutes les classes déclarées?
- 5. Une méthode pour compter les occurrences dans une liste
- 6. Imprimer toutes les variables disponibles dans un modèle Smarty
- 7. Les variables déclarées localement ne peuvent pas être contrôlées
- 8. Obtenir toutes les variables dans une structure de taille inconnue (C#)
- 9. Existe-t-il un moyen de voir toutes les variables dans la portée actuelle?
- 10. Obtenez une liste de toutes les applications installées sur Blackberry
- 11. Comment obtenez-vous une liste de toutes les polices installées?
- 12. Meilleur moyen d'obtenir une liste des pays en Java
- 13. Existe-t-il un moyen rapide de transférer toutes les variables d'un objet identique dans un autre en C#?
- 14. Comment énumérer toutes les variables définies dans un script groovy
- 15. Flash AS3 EventDispatcher - un moyen d'obtenir une liste d'auditeurs enregistrés?
- 16. Où puis-je obtenir une liste de toutes les propriétés disponibles dans le fichier de projet?
- 17. Dans Python 2.6, comment transmettre un objet liste à une méthode qui attend une liste d'arguments?
- 18. Trouver un objet dans une liste générique avec méthode Find
- 19. importer toutes les variables de classe parente
- 20. N'importe quel moyen d'appeler une méthode privée?
- 21. Existe-t-il un moyen de modifier une classe dans une méthode de classe en Python?
- 22. ruby: un bloc peut-il affecter les variables locales dans une méthode?
- 23. Est-il possible d'écrire une méthode d'échange en Java?
- 24. Lire les variables Java
- 25. Eclipse: liste des méthodes et des variables de toutes les classes
- 26. Lien vers toutes les variables Visual Studio $
- 27. Comment obtenir une liste de toutes les exceptions possibles qui pourraient se produire dans une portée spécifique
- 28. Comment cloner une liste générique en Java?
- 29. Genshi - comment imprimer toutes les variables de la portée
- 30. Quelle est la portée des variables déclarées dans un constructeur de classe?