2010-05-28 14 views
0

Y a-t-il des points de jointure définis dans les arithmétiques que je peux attraper?Point de jointure AspectJ avec des types simples

Quelque chose comme:

int a = 4; 
int b = 2; 
int c = a + b; 

Puis-je faire un pointcut qui attire une de ces lignes? Et quel contexte vais-je pouvoir obtenir?

Je voudrais ajouter un before() à tout int/float/double manipulation fait dans une méthode particulière sur une classe, est-ce possible.

Je vois dans le AspectJ docs qu'il existe des points de jointure définis pour l'initialisation d'objet et les appels de méthode. Est-ce que déclarer une int une initialisation d'objet et l'opérateur + compte comme un appel de méthode?

Merci!

Répondre

1

Non, + ne correspond à aucun appel de méthode en Java.

Vous pouvez par exemple créer votre propre classe wrapper qui encapsule un entier, ou utiliser BigInteger et faire un pointcut sur la méthode add.

+0

J'ai commencé à faire des wrappers, quand je me souvenais d'AspectJ et que c'était peut-être plus facile. J'essaie de créer un programme pour visualiser de petits algorithmes, donc je voudrais pouvoir appliquer le programme à n'importe quel code sans avoir à le modifier. Peut-être que Java n'est pas la bonne langue à utiliser, des suggestions? Je voudrais éviter d'avoir à créer un nouveau langage/compilateur. –