import java.util.*; class C { public void foo(List listOfStrings) {} public void bar(List listOfDoubles) {} public void goo(List listOfSomeNumberType) {} } aspect A { before(List listOfDoubles) : execution(* C.*(..)) && args(listOfDoubles) { for (Double d : listOfDoubles) { // do something } } @org.aspectj.lang.annotation.SuppressAjWarnings before(List listOfDoubles) : execution(* C.*(..)) && args(listOfDoubles) { for (Double d : listOfDoubles) { // do something } } @org.aspectj.lang.annotation.SuppressAjWarnings("uncheckedArgument") before(List listOfDoubles) : execution(* C.*(..)) && args(listOfDoubles) { for (Double d : listOfDoubles) { // do something } } before(List listOfDoubles) : execution(* C.*(List)) && args(listOfDoubles) { for (Double d : listOfDoubles) { // do something } } } public aspect ArgsExamples { before() : args(List) && execution(* *(..)) { System.out.println("args(List)"); } before() : args(List) && execution(* *(..)) { System.out.println("args List of String"); } before() : args(List) && execution(* *(..)) { System.out.println("args List of Double"); } public static void main(String[] args) { C c = new C(); c.foo(new ArrayList()); c.bar(new ArrayList()); c.goo(new ArrayList()); } }