import java.util.*; public class MethodL { public static void main(String []argv) { List doubleList = new ArrayList(); List floatList = new ArrayList(); One o1 = new One(); One o2 = new One(); List a = o1.m(); List b = o2.m(); } } interface I { } class One implements I {} aspect X { public List I.m() { return null; } // ok, available in both parameterizations of One }