Tenho uma classe X que implementa a interface Comparable<X>. No entanto, segundo a lógica da minha aplicação, uma comparação entre objetos X só faz sentido se determinadas condições forem satisfeitas e, sendo assim, gostaria que meu método de comparação lançasse uma exceção caso as condições necessárias para a comparação não forem satisfeitas.
O problema é que eu não consigo colocar uma cláusula throw new MinhaExcecao() na minha implementação de compareTo(), pois, para isso, meu método compareTo() deveria receber um throws MinhaExcecao em sua assinatura, o que não está previsto na interface (pelo menos, é o que o Eclipse me diz).
Enquanto não encontro solução melhor, eu me viro fazendo com que o meu método lance uma ClassCastException (que está prevista na interface).
O que eu posso fazer neste caso?
Valeu!