import java.util.*; public aspect ArgsListOfSomethingSuper { /* * - args(List) matches List, List * does not match List * matches List, List with unchecked warning * matches List * matches List with unchecked warning */ void rawList(List l) {} void listOfObject(List ls) {} void listOfNumber(List ln) {} void listOfDouble(List ld) {} void listOfSomething(List ls) {} void listOfSomethingSuper(List ln) {} void listOfSomethingExtendsNumber(List ln) {} public static void main(String[] args) { ArgsListOfSomethingSuper a = ArgsListOfSomethingSuper.aspectOf(); a.rawList(null); a.listOfObject(null); a.listOfNumber(null); a.listOfDouble(null); a.listOfSomething(null); a.listOfSomethingSuper(null); a.listOfSomethingExtendsNumber(null); } before() : execution(* *(..)) && args(List) { System.out.println("List matches " + thisJoinPointStaticPart); } }