[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] what for args pointcut designator?
|
this(), args(), and target() allow you to bind variables in a type-safe way and to do runtime tests.
E.g., for
void put(Object key, Object value)
you might want to pick out only join points with keys of type foo:
execution(void put(Object, Object)) && args(Foo, Object)
If you were to do something with it (e.g., put Foo in a wrapper with a better hashcode), then you'd want to bind the variable. Without binding (i.e., using reflection) you only get Object, which makes for a lot of runtime ClassCastException.
Wes
> ------------Original Message------------
> From: Kamil Dworakowski <kamil.dworakowski@xxxxxxxxxxxxxx>
> To: aspectj-users@xxxxxxxxxxx
> Date: Sat, Sep-2-2006 11:51 AM
> Subject: [aspectj-users] what for args pointcut designator?
>
> What is the most important reason for having args pointcut designator
> in
> aspectj language? I would prefer exposing args in signature like this
>
> aPointcut(int i): execution( * *.method( int i ) );
>
> The one thing that comes to my mind is
>
> execution( * *.meth( Object) ) && args( String )
>
> That is, however, not an everyday use and can be achieved by type
> checking in the advice body.
>
> The reason I go through it is because I want to implement aspectj like
> aop. I mean a reasonable subset. I wonder if I could just forget about
> args.
>
> Luntain
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>