The
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.sort(list, myComparator);