Aspectj перезаписывает аргумент метода - PullRequest
10 голосов
/ 30 ноября 2010

Я разрабатываю аспект, который проверяет аргументы методов установки и перезаписывает пустые строки с нулевым значением. Это мое состояние до сих пор:

@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

1 Ответ

32 голосов
/ 30 ноября 2010

Я полагаю, что вы должны реализовать общий совет вместо предварительного.

Поскольку вы можете использовать продолжить с вашими новыми аргументами:

proceed(newArgs);
...