Aspectj 覆盖方法的参数
我正在开发一个方面,用于检查 setter 方法的参数并用 null 值覆盖空字符串。这是我到目前为止的状态:
@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;
}
}
}
不幸的是,覆盖语句 args[i] = null; 现在可以工作了!有谁知道我应该如何覆盖它?
干杯,
凯文
I'm developing an aspect that checks arguments of setter methods and overwrites empty strings with null value. This is my state so far:
@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;
}
}
}
Unfortunately the overwrite statement args[i] = null;
does now work! Do anyone know how should I overwrite it?
Cheers,
Kevin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信你必须实施周围的建议,而不是之前的建议。
因为您可以使用继续处理新参数:
I believe you have to implement an around advice, instead of a before advice.
Because you can use proceed with your new arguments: