This summarizes the requirements of our implementation of AspectJ. For more details, see the relevant sections of this guide.
The invoking code must be under the control of ajc for the following join points:
The declaring/target code must be under the control of ajc for the following join points and inter-type declarations:
The initialization and preinitialization join points do not support around advice
Declaring members on an interface in an aspect affects only the topmost implementing classes the implementation controls.
Runtime ClassCastException may result from supplying a supertype of the actual type as an argument to proceed(..) in around advice.