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

Dúvida exercicio 3 Collections framework (sort)

Boa noite,

Estou com uma dúvida no exercício 3 (Collections framework), onde estou tendo o seguinte erro ao declarar o sort ex: Collections.sort(contas);

Bound mismatch: The generic method sort(List<T>) of type Collections is not applicable for the arguments (List<Conta>). The inferred type Conta is not a valid substitute for the bounded parameter <T extends Comparable<? super T>>

Não estou conseguindo identificar aonde está o erro, segue o meu código:

package br.com.alura.banco;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import br.com.alura.banco.conta.Conta;
import br.com.alura.banco.conta.ContaPoupanca;

public class TestaOrdenacao {
    public static void main(String[] args) {

        List<Conta> contas = new ArrayList<Conta>();

        ContaPoupanca cp1 = new ContaPoupanca(500, "Diogo");
        cp1.deposita(300.0);
        contas.add(cp1);

        ContaPoupanca cp2 = new ContaPoupanca(550, "Giovana");
        cp2.deposita(255.5);
        contas.add(cp2);

        ContaPoupanca cp3 = new ContaPoupanca(300, "Sonsim");
        cp3.deposita(1000.0);
        contas.add(cp3);

        Collections.sort(contas);

        for (Conta conta : contas) {
            System.out.println(conta);
        }

    }
}
2 respostas
solução!

Diogo, duas coisas estão acontecendo. Em primeiro lugar, ArrayList não é generics. Ela é uma classe que representa uma lista de objects. Assim, você não pode declarar da forma como está declarando. Você deve fazer assim:

List contas = new ArrayList();

Em segundo lugar, o ArrayList por não tratar de tipos específicos, mas enxergar apenas objects, não consegue trabalhar com interações retornando um tipo específico, logo seu loop deve ser alterado para:

for (Object conta : contas) {
   System.out.println( conta);
}

Fiz isso aqui e funcionou normalmente.

Sandro, obrigado fiz o teste aqui e funcionou, valeu !!