Ich versuche, URIs in einer Anwendung mit AspectJ zu normalisieren. Ich fange jeden Aufruf einer Methode ab, die einen java.net.URI-Parameter mit diesem Code übergibt:
Object around() : execution(* *(..,java.net.URI,..)) {
for ( Object arg : thisJoinPoint.getArgs() ) {
if ( arg instanceof URI ) {
// normalize
}
}
return proceed();
}
Da URI jedoch unveränderlich ist, kann ich den normalisierten Wert nicht in das vorhandene Objekt eintauschen. Was ich brauche, ist der Aufruf von proceed mit den neuen, normalisierten URI-Objekten (und möglicherweise die Weitergabe der anderen Argumente unverändert). Der Aufruf von proceed lässt mich jedoch nur Argumente weitergeben, die durch den Verknüpfungspunkt gesammelt wurden. Gibt es eine Möglichkeit, dies für eine variable Anzahl von Argumenten zu erreichen (wobei ich hauptsächlich an allen URI-Argumenten interessiert bin, aber bereit bin, alle Argumente zu sammeln und weiterzugeben)?