【发布时间】:2011-08-30 14:14:00
【问题描述】:
我正在尝试使用 AspectJ 跨应用程序规范化 URI。我正在使用以下代码捕获对传递 java.net.URI 参数的方法的每个调用:
Object around() : execution(* *(..,java.net.URI,..)) {
for ( Object arg : thisJoinPoint.getArgs() ) {
if ( arg instanceof URI ) {
// normalize
}
}
return proceed();
}
但是,由于 URI 是不可变的,我无法将标准化值交换到现有对象中。我需要的是调用新的、规范化的 URI 对象(并且可能传递其他参数不变)。但是,proceed 调用只允许我传递连接点收集的参数。对于可变数量的参数(主要对任何 URI 参数感兴趣,但愿意收集和传递所有参数),是否有任何方法可以实现此目的?
【问题讨论】: