2011-02-08 1 views
1

Le standard Java permet la manipulation de l'AST au moment de la compilation. Cependant, il n'y a pas de standard sur l'API et chaque compilateur l'implémente différemment (même entre les versions). Au travail, nous avions l'habitude d'avoir un hack mélangeant le temps de compilation et l'intersection de temps de chargement. Nous nous transformons maintenant en un processus de développement centré sur l'éclipse et ce hack nous pose des problèmes.Est-ce que Intersection au moment de la compilation pour Java est utile?

J'ai écrit un agent JVM qui charge un transformateur Javassist et réécrit le bytecode, supprimant le besoin d'une intersection de temps de compilation, et résolvant nos problèmes.

Ma question est: Est-ce que Intersection au moment de la compilation pour Java est utile? Y at-il un cas d'utilisation dans lequel vous ne pouvez pas le faire en utilisant l'intersection au moment du chargement?

+2

Cela n'a aucun sens. Voulez-vous dire "introspection"? –

+0

Non, regarder dans la méta-représentation de votre code s'appelle Reflection. Changez-le est appelé intersection. –

+0

Est-ce que vous avez une description sur ce sens de * intersection *? Je n'ai pas entendu le nom avant, et [Wikipedia] (http://en.wikipedia.org/wiki/Intersection) ne le liste pas. –

Répondre

0

Ne semble pas intelligent à valider pour une API non publique. Que se passe-t-il lorsque cela change, parce qu'il n'y a pas d'engagement public en publiant une API?

Ajoutez une étape de compilation et utilisez ASM.

+0

L'idée est de créer une bibliothèque qui résume cette API privée et évite d'utiliser la manipulation post-compilation. Chaque modification dont vous avez seulement besoin pour créer un traducteur pour cette version. –

Questions connexes