D'une manière générale, un ensemble de code (le code client) est lié à un autre (le code API). La liaison Java est généralement vérifiée entre .java & .class au moment de la compilation ou entre .class & .class au moment de l'exécution. Cependant, dans ce dernier cas, la vérification se fait au fur et à mesure que de mauvaises références sont rencontrées (c'est-à-dire que c'est paresseux).Comment puis-je vérifier la liaison entre le code Java compilé?
Existe-t-il un moyen de forcer la vérification de tous les liens entre le code client et le code API à la fois avec le code compilé? Le but serait de vérifier que le code client fonctionnera avec la version donnée de l'API - même si elle a été compilée avec une autre.
(Bien sûr, une façon serait de décompiler et recompiler contre l'API, mais est-il une méthode plus directe?)
Les performances ne sont pas nécessairement un problème majeur car le résultat peut être mémorisé. Dans certaines situations, la quantité de code ne sera pas nécessairement énorme. –
Très bien, bien. Vous pouvez alors utiliser une bibliothèque d'ingénierie bytecode comme ASM (reportez-vous à l'utilisation de CheckClassAdapter) ou BCEL (qui contient le vérificateur JustIce) pour vérifier si elles sont suffisantes ou les étendre si nécessaire. Je ne suis pas sûr si Javassist a une caractéristique similaire. –