Está apresentando o seguinte erro:
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>>
package br.com.caelum.testes;
abstract class Conta {
protected double saldo;
private String nome;
private int agencia;
protected int numero;
public double getSaldo() {
return this.saldo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getAgencia() {
return agencia;
}
public void setAgencia(int agencia) {
this.agencia = agencia;
}
public int getNumero(){
return this.numero;
}
public void setNumero(int numero){
this.numero = numero;
}
public void deposita(double valor) {
if (valor < 0) {
throw new ValorInvalidoException(valor);
} else {
this.saldo += valor - 0.10;
}
}
public void saca(double valor) {
this.saldo -= valor;
}
public abstract void atualiza(double taxa);
public String toString() {
return "esse objeto é uma conta com saldo R$" + this.saldo;
}
public boolean equals(Object obj) {
Conta outraConta = (Conta) obj;
if (this.numero == outraConta.numero && this.nome == outraConta.nome)
return true;
else
return false;
}
}
package br.com.caelum.testes;
public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{
public ContaPoupanca(){
}
public ContaPoupanca(int numero, double saldo){
this.setNumero(numero);
this.saldo = saldo;
}
public void atualiza(double taxa){
this.saldo += this.saldo * taxa * 3;
}
public int compareTo(ContaPoupanca outraConta) {
/*
* O retorno será um número negativo para menor,
* positivo para maior ou 0 para igual
* */
return this.getNumero() - outraConta.getNumero();
}
}
package br.com.caelum.testes;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestaOrdenacaoContas {
public static void main(String[] args) {
List<Conta> contas = new ArrayList<Conta>();
ContaPoupanca cp1 = new ContaPoupanca(003, 500);
ContaPoupanca cp2 = new ContaPoupanca(002, 300);
ContaPoupanca cp3 = new ContaPoupanca(001, 200);
contas.add(cp1);
contas.add(cp2);
contas.add(cp3);
Collections.sort(contas);
for(Conta conta : contas){
System.out.println(conta);
}
}
}