【发布时间】:2010-11-30 09:33:58
【问题描述】:
我正在开发一个方面,它检查 setter 方法的参数并用空值覆盖空字符串。这是我目前的状态:
@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; 现在可以工作了!有谁知道我应该如何覆盖它?
干杯,
凯文
【问题讨论】:
-
@Kevin btw 你可以用这个
if("".equals(args[i]))替换这个if (args[i] instanceof String && ((String) args[i]).isEmpty()) -
谢谢,是不是更快了?可能是因为选角?
-
我认为性能方面没有太大差异,但我的版本更具可读性,因此更不容易出错
标签: java aop aspectj spring-aop