Java- The meaning of <T extends Comparable<T>>?

LTH picture LTH · Dec 16, 2011 · Viewed 87.3k times · Source

The full context being:

public class RClass<T extends Comparable<T>>

Would I be right in saying that the statement in the title means that the arguments plugged into the method must either be an object of a class which implements Comparable OR one of its derived classes?

Thanks.

Answer

Andy Thomas picture Andy Thomas · Dec 16, 2011

This means that the type parameter must support comparison with other instances of its own type, via the Comparable interface.

An example of such a class is provided in the Oracle tutorial Object Ordering. Note the similar pattern to T extends Comparable<T> in the excerpt below:

public class Name implements Comparable<Name> {
   ...
   public int compareTo(Name n) { ... }
}