Joshua Bloch "Effective java (2nd edition)" Item 28 page 138:
always use Comparable<? super T> in preference
to Comparable<T>. The same is true of comparators, so you should always
use Comparator<? super T> in preference to Comparator<T>.
- List of class names that are always producers. Default values for "Comparator|Comparable".
- list of class names that are always customers.