import java.util.*; public aspect CodeThree { before(): execution(* CodeThree.*(..)) && args(List) {} // yes before(): execution(* CodeThree.*(..)) && args(ArrayList) {} // yes - runtime check before(): execution(* CodeThree.*(..)) && args(List) {} // no before(): execution(* CodeThree.*(..)) && args(ArrayList) {} // no before(): execution(* CodeThree.*(..)) && args(List) {} // yes before(): execution(* CodeThree.*(..)) && args(ArrayList) {} // yes - runtime check void m(List li) {} }