import org.aspectj.testing.Tester; public class ObjectForInt { public static void main(String[] args){ new Test().go(); Tester.checkEqual(Test.a, 10, "Test.a"); Tester.checkEqual(A.beforeA.intValue(), 4, "beforeA"); } } class Test { public static int a = -1; void go(){ foo(4); } void foo(int a){ Test.a = a; } } aspect A { public static Integer beforeA = null; pointcut fooCut(Object i): target(Test) && args(i) && call(void f*(*)); before(Object o): fooCut(o){ beforeA = (Integer)o; } void around(Object o): fooCut(o){ proceed(new Integer(10)); } }