OK. One hint:
The method's signature:
public static <T extends Comparable<? super T>> void sort(List<T> list)
is saying about argument 'list':
- It has to be a List
- of type T, being T any class that extends (implements) Comparable<? super T>. That is any class that is comparable to itself or superclass.
Some examples of the above in the API:
String implements Comparable<String>
Integer implements Comparable<Integer> (the same holds true for the other wrapper classes)
Date and Calendar implement Comparable<Date> and Comparable<Calendar> respectively.
Do you understand what is missing in the definition of your generic class (gen<T>

now? Post back if you need more help.