Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercício 02

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);
        }
    }
}
1 resposta
solução!

Resolvido! Achei o erro aqui na hora de criar o List estava fazendo a seguinte declaração: List contas = new ArrayList();

Depois que substitui para: List contas = new ArrayList(); Parou de mostrar o erro.