import org.aspectj.testing.Tester; public class AspectOfInterface { public static void main(String[] args) { test(); } public static boolean ranAdvice = false; public static void test() { new C().foo(); Tester.check(ranAdvice, "advice on interface"); } } interface I { public void foo(); } class C implements I { public void foo() { } //System.out.println("foo"); } } aspect A /*of eachobject(instanceof(I))*/ { before(): call(* *(..)) { AspectOfInterface.ranAdvice = true; //System.out.println("before"); } }