Estoy desarrollando un aspecto que comprueba los argumentos de los métodos setter y sobrescribe cadenas vacías con valor nulo. Este es mi estado hasta ahora:Aspectj sobrescribe un argumento de un método
@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;
}
}
}
Por desgracia, la declaración de sobreescritura args[i] = null;
hace ahora funciona! ¿Alguien sabe cómo debo sobrescribirlo?
Saludos,
Kevin
@Kevin por cierto podrías reemplazar esto 'if (args [i] instanceof String && ((String) args [i]). IsEmpty())' con este 'if (" ". Equals (args [i])) ' –
Gracias, ¿es más rápido? Mayo a causa del casting – eglobetrotter
No creo que haya mucha diferencia en términos de rendimiento, pero mi versión es más legible y, por lo tanto, menos propensa a errores –