Je développe un aspect qui vérifie les arguments des méthodes setter et écrase les chaînes vides avec une valeur nulle. Ceci est mon état à ce jour:Aspectj écrase un argument d'une méthode
@Before("execution(* de.foo.entity.*.set*(..)) && args(java.lang.String)")
public void check(final JoinPoint jp) {
LOGGER.debug(jp.getSignature().toLongString());
Object[] args = jp.getArgs();
for (int i = 0; i < args.length; i++) {
if (args[i] instanceof String && ((String) args[i]).isEmpty()) {
args[i] = null;
}
}
}
Malheureusement, la déclaration Ecraser args[i] = null;
ne fonctionne maintenant! Est-ce que quelqu'un sait comment dois-je l'écraser?
Cheers,
Kevin
@Kevin btw vous pouvez remplacer this 'si (args [i] instanceof String && ((String) args [i]). IsEmpty()) 'avec ce' si ("". Equals (args [i])) ' –
Merci, c'est plus rapide? Mai à cause de casting? – eglobetrotter
Je ne pense pas qu'il y ait beaucoup de différence en termes de performances, mais ma version est plus lisible et donc moins sujette aux erreurs –