The <T> means that there is a generic T being used in this declaration. This has two impacts;
- The
T in the first type of the first argument must match the type in the second argument. (And ? super T means it must be a super class or interface of T) Without the use of a generic, there is no way to do this.
- The type can be given explicitly with a statement like
Collections.<Integer>sort(list, myComparator);