This is the signature of max() in Collections class :
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
what i want to know is , why does T has a explicit upper bound Object , when Object is already the super type for all types.