1
resposta

[Dúvida] Dúvida nesse Exercício

O meu código aparece uma Exceção que fala que esse trecho do código está com erro, não consigo descobrir qual é, se alguém puder me ajudar, eu agradeço.

@Override public int compareTo(Recibo rec) { return this.compareTo(rec);

}

package br.com.exercicios.alura;

public class Recibo implements Comparable { private int numero;

public int getNumero() {
    return numero;
}

public void setNumero(int numero) {
    this.numero = numero;
}

@Override
public int compareTo(Recibo rec) {
    return this.compareTo(rec);

}

}

package br.com.exercicios.alura;

import java.util.Set; import java.util.TreeSet;

public class TestaRecibo {

public static void main(String[] args) {

    Recibo rec1 = new Recibo();
    Recibo rec2 = new Recibo();
    Recibo rec3 = new Recibo();

    Set<Recibo> recibos = new TreeSet<Recibo>();
    recibos.add(rec1);
    recibos.add(rec2);
    recibos.add(rec3);
    for (Recibo rec : recibos) {
        System.out.println(rec);
    }
1 resposta

Olá,o compareTo deve retornar um inteiro. Implemente o método, comparando os valores dos atributos numero.

Algo assim:


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

/**
 * Nome do arquivo: Test.java
 * 
 */

public class Test {

    public static void main(String[] args) {
        System.out.println("Criando contas..");
        Conta conta1 = new Conta(1, 400.0);
        Conta conta2 = new Conta(2, 200.0);
        Conta conta3 = new Conta(3, 200.0);
        Conta conta4 = new Conta(4, 200.0);
        Conta conta5 = new Conta(5, 200.0);
        List<Conta> contas = new ArrayList<>();

        contas.add(conta2);
        contas.add(conta1);
        contas.add(conta3);
        contas.add(conta5);
        contas.add(conta4);

        System.out.println("Imprimindo contas..");
        contas.forEach(conta -> {System.out.println(conta);});

        System.out.println("Ordenando contas..");        
        Collections.sort(contas);

        System.out.println("Imprimindo contas..");
        contas.forEach(conta -> {System.out.println(conta);});

    }

}

class Conta implements Comparable<Conta> {
    private int numero;
 ... // construtor, getters, setters, etc.

    public int compareTo(Conta conta){
        return this.numero - conta.numero;
    }
}
Resolveu? Por favor, marcar como solucionado ✔. Bons estudos! ⌣