Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Erro exercício 3

Meu código está apontando o seguinte erro quando é executado: UnsupportedOperationException.

nenhum erro de sintaxe é apontado, alguém sabe o que pode ser??

3 respostas

Oi Daniel,

Como está o seu código? Posta aqui para darmos uma olhada?

Abraço!

class ContaPoupanca extends Conta implements Comparable<Conta> {

    public ContaPoupanca(String nome, int numero) {
        super(nome, numero);
    }

    public int ComapareTo(ContaPoupanca outra){
        return this.getNumero() - outra.getNumero();
    }

    @Override
    public void atualiza(double taxa) {
        this.saldo += this.saldo * (taxa * 3);
    }

    @Override
    public void deposita(double valor) throws ValorInvalidoException {

        if(valor < 0){ 
          throw new ValorInvalidoException(valor);
        }
        else{
        this.saldo += valor - 0.10;
        }
    }

    @Override
    double atualiza() {
        throw new UnsupportedOperationException("Not supported yet."); 
    }

    public int compareTo(ContaPoupanca t) {
        throw new UnsupportedOperationException("DEU RUIM."); 
    }

}
public class TestaOrdenacao {

public static void main(String args[]) throws ValorInvalidoException{

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

    ContaPoupanca c1 = new ContaPoupanca("Daniel", 10);
    c1.deposita(1500.0);
    contas.add(c1);

    ContaPoupanca c2 = new ContaPoupanca("Paula", 11);
    c2.deposita(1000.0);
    contas.add(c2);

    ContaPoupanca c3 = new ContaPoupanca("Géssica", 12);
    c3.deposita(1300.0);
    contas.add(c3);

    ContaPoupanca c4 = new ContaPoupanca("Joseph", 13);
    c4.deposita(3000.0);
    contas.add(c4);

    ContaPoupanca c5 = new ContaPoupanca("Bruno", 14);
    c5.deposita(2500.0);
    contas.add(c5);


   Collections.sort(contas);

    for(ContaPoupanca conta : contas){
        System.out.println(conta);
    }
}    
}
solução

Boa noite Daniel,

Para a realização do sort uma das maneiras é você implementar a seguinte interface:

public interface Comparable<T> {
    public int compareTo(T o);
}

(Como você fez)

Collections.sort(contas);

Entretanto sua implementação do método esta lançando a exeção, então o comportamento atual já é esperado.

public int compareTo(ContaPoupanca t) {
        throw new UnsupportedOperationException("DEU RUIM."); 
    }

Para que não ocorra isso você deve implementar o método da forma que deseja que sua coleção seja ordenada.

Espero ter contribuído. =)