The method accepts a generic list of which the type T must implement (the generic type definition doesn't know implement only extend) Comparable. But the type of Comparable must be T or a super class of T.

André Asantos wrote: Does anybody get to interpret this following code: ->

This says, the sort method accept list of Ts where T must implement comparable interface. Later part actually defined the type of Comparable interface. It says, the comparable interface should be of type of it's base class of current class.