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

Não entendo por que está dando erro

Gelra, meu código é o seguinte e está dando erro na parte do Collections.sort.. Não entendo por que está dando esse defeito:

package br.com.Future.banco.conta; import java.util.ArrayList; import java.util.Collections; import java.util.List;

import br.com.Future.banco.conta.*;

public class TesteOrdenacao { public static void main(String[] args) { List contas = new ArrayList();

ContaCorrente c1 = new ContaCorrente("Larissa", 2000.0); c1.deposita(1000.0); contas.add(c1);

ContaCorrente c2 = new ContaCorrente("felipe", 0.0); c2.deposita(1000.0); contas.add(c2);

Collections.sort((List) contas);

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

}

}

Agredeço, desde já!

4 respostas

Olá LariV,

Bom o código está abaixo indentado caso outros queiram responder. Na próxima por gentiliza só formate ele para ajudar a leitura.

package br.com.Future.banco.conta;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import br.com.Future.banco.conta.*;

public class TesteOrdenacao { 
public static void main(String[] args) { 
List contas = new ArrayList();

ContaCorrente c1 = new ContaCorrente("Larissa", 2000.0);
 c1.deposita(1000.0); 
contas.add(c1);

ContaCorrente c2 = new ContaCorrente("felipe", 0.0); c2.deposita(1000.0);
 contas.add(c2);

Collections.sort((List) contas);

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

Mas respondo a pergunta, neste caso o Collections.sort() está acusando um erro de compilação mesmo. Por quê? A classe contas deve implementar a interface Comparable para funcionar corretamente. :)

Fazendo essa modificação tudo flui legal.

Se quiser mais informações tem essa página que pode te dar algumas informações a mais: https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html

Sempre olhe a doc dessas coisas assim, sempre tem informações uteis.

Agora está dando um erro no for, em contas. Copiei o seu e rodei aqui no meu e está dando a mesma coisa. Desculpa, eu só não sei formatar. Rsrsrs Poderia me ajudar?

solução!

Olá Larry,

O código que eu copiei é o seu mesmo, só formatei ele para os outros verem melhor. Mas tente implementar a interface que eu citei acima na classe conta corrente, aí irá funcionar.

Para formatar é bem simples, basta colocar todo o seu código entre três backticks (```) antes e depois do código.

Sobre a sua dúvida em questão, conforme o Gleidson citou, você deverá implementar na sua classe Conta¹ ou ContaCorrente a interface Comparable, pois o sort() não pode afirmar que uma ContaCorrente É UM objeto comparável.

Você informa isso para ele a partir do momento que "assina um contrato" na classe que deseja transformar em um comparável. Logo, além de colocar o método compareTo(), deverá implementar também a interface Comparable.

¹ Se você implementar a interface Comparable na superclasse(classe mãe) Conta, todas as suas filhas também herdarão esta característica.