11

セッターメソッドの引数をチェックし、空の文字列を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;
        }
    }
}

残念ながら、overwriteステートメントargs[i] = null;は機能するようになりました。誰かがそれを上書きする方法を知っていますか?

乾杯、

ケビン

4

1 に答える 1

32

beforeアドバイスではなく、aroundアドバイスを実装する必要があると思います。

新しい引数を使用して続行できるため、次のようになります。

proceed(newArgs);
于 2010-11-30T09:35:30.813 に答える