Necessisty of Comparable interface : <p>Comparable interface contains only one method <code>compareTo(T o)</code>and for example <code>Collections.sort()</code> method first type-cast the compared object to <code>Comparable</code> and then compares it.</p>

<p>Now I am unable to understand why we need this process in the first place. Wouldn't it be just simpler to call directly <code>compareTo()</code> method of the object and get rid of the <code>Comparable</code> interface? If the object doesn't have <code>compareTo()</code> method it would raise an error anyway just like it does if the object didn't implement <code>Comparable</code> interface.</p>

<p>Besides I don't see a reason one would need a <code>Comparable</code> type object. Is there any advantages of having a <code>Comparable</code> interface ? </p>
