import java.util.*; class MathUtils { } class Sorter { public static List l; // Sorter(List elements,Comparator comparator) { // Collections.sort(elements,comparator); // l = elements; // } } public class GenericCtorITD3 { public static void main(String[] argv) { List ls = new ArrayList(); ls.add(new Simple(2)); ls.add(new Simple(1)); ls.add(new Simple(5)); ls.add(new Simple(3)); new Sorter(ls,new SimpleComparator()); System.err.println(Sorter.l.get(0)); System.err.println(Sorter.l.get(1)); System.err.println(Sorter.l.get(2)); System.err.println(Sorter.l.get(3)); } static class Simple { int n; Simple(int i) { n=i;} public String toString() { return new String(""+n); } } static class SimpleComparator implements Comparator { public int compare(Simple a, Simple b) { return a.n-b.n;} } } aspect X { Sorter.new(List elements,Comparator comparator) { this(); Collections.sort(elements,comparator); l = elements; } }