我正在尝试使用AspectJ规范化应用程序中的URI.我正在捕获使用此代码传递给java.net.URI参数的方法的每个调用:
Object around() : execution(* *(..,java.net.URI,..)) {
for ( Object arg : thisJoinPoint.getArgs() ) {
if ( arg instanceof URI ) {
// normalize
}
}
return proceed();
}
Run Code Online (Sandbox Code Playgroud)
但是,由于URI是不可变的,我无法将规范化值交换到现有对象中.我需要的是调用继续使用新的,规范化的URI对象(并且可能传递其他参数不变).但是,继续调用只允许我传递由连接点收集的参数.有没有办法为可变数量的参数实现这一点(主要是对任何URI参数感兴趣,但愿意收集并传递所有参数)?