Java .Sort()

Galera estou com dúvida nessa linha de código. Tenho quer ordenar uma classe chamada Vetor.
O problema é que eu só sabia passando para valor numérico, acabei pedindo para um amigo me dar um help e ele me passou a seguinte linha:

if(((Comparable<T>) atual.getElemento()).compareTo(anterior.getElemento()) < 0){

Mas não estou entendendo porque ele fez um “cast” (Comparable) atual.getElemento().
Quem poder me explicar essa linha fico muito agradecido.

Ele está forçando o cast já que nem toda classe implementa Comparable logo é possível que seu Vetor possua Objetos que não implementam a interface.

Sem o cast esse código dará erro de compilação pois o compilador usa a lógica que eu descrevi mas ao forçar o cast o compilador simplesmente ‘deixa passar’ mas veja bem, em tempo de execução esse código provavelmente lançará um ClassCastException

Obrigado leofariasrj25 acabei criando outro posto para pergunta ficar melhor.