import java.util.*; abstract aspect GenericAspect { interface SimpleI {} declare parents: A implements SimpleI; public void SimpleI.m1() {}; public List SimpleI.m2() {return null;}; public void SimpleI.m3(List ln) {}; public void SimpleI.m4(N n) {}; } aspect GenericAspectG extends GenericAspect { public static void main(String []argv) { Base b = new Base(); b.m1(); List ln = b.m2(); b.m3(new ArrayList()); b.m4(new Integer(5)); } } class Base {}