Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro de compilação com Collection.sort()

Olá! tenho seguido as instruções, porém tenho tido problemas nesse código.

Para facilitar a legilibilidade desse tópico, subi os arquivos Conta.java, ContaPoupanca.java e TestaOrdenacao.java para o dropbox. Seguem os respectivos links: Conta.java ContaPoupanca.java TestaOrdenacao.java

Tentei fazer declarar uma lista de contas assim: List< Conta > contas = new ArrayList<>(); seguindo o exemplo dos execícios anteriores e o modelo do vídeo.

Porém, o Eclipse me retorna um erro de compilação na seguinte linha: Collections.sort( contas ); dizendo que o método sort() não é aplicável para o argumento List< Conta >.

Caso eu altere para List< ContaPoupanca >, a linha que contém o método sort() deixa de apresentar erro, porém passo a ter erro no método add( Object object ).

Tentei algumas das dicas dadas nos outros tópicos, porém, nenhuma levou numa solução. Como já revisei o código algumas vezes, gostaria de entender o erro que está acontecendo.

2 respostas
solução!

Oi Vinicius, Td bem?

Esse erro aconteceu pq a sua classe Conta não implementa Comparable. Só objetos que sigam essa interface podem ser comparados. Desse modo o Collections.sort() não funciona na Conta mas sim na ContaPoupanca.

Conseguiu entender?

Abraços

Entendi sim, cara muito obrigado!

Consegui corrigir aqui, implementando Comparable em Conta e comparando qualquer tipo de conta. E como ContaPoupanca já estende Conta, então já herdei o método compareTo().

Valeu mesmo, não tinha notado isso!

Isso realmente me confundiu, porque no exercício anterior, é pedido que Comparable seja implementado em ContaPoupanca, porém todo o conteúdo nos orienta a declarar da forma mais genérica possível quando declaramos as variáveis.