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

erro ao buscar o Objeto no ArrayList e retorna o ID

Quando peço pra imprimir o objeto, no ultimo exercício, ele me repassa o id dele (br.com.bytebank.banco.modelo.ContaCorrente@299a06ac) , e não o numero, e agencia.

package br.com.bytebank.banco.test.util;

import java.util.ArrayList;

import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;

public class Teste {

    public static void main(String[] args) {

        ArrayList lista = new ArrayList();


        Conta cc1 = new ContaCorrente (222,111);
        lista.add(cc1);

        Conta cc2 = new ContaCorrente (222,122);
        lista.add(cc2);

        System.out.println(lista.size()); //saber o tamanho

        Conta ref = (Conta) lista.get(0);
        System.out.println(ref.getNumero());   //pega um objeto 

        lista.remove(0); //deletar um objeto

        System.out.println(lista.size()); //saber o tamanho

        Conta cc3 = new ContaCorrente (222,333);
        lista.add(cc3);

        Conta cc4 = new ContaCorrente (222,444);
        lista.add(cc4);

        System.out.println(lista.size()); //saber o tamanho


        Object object = lista.get(2);
        System.out.println(object);



//        for(int i = 0; i < lista.size(); i++) {
//            Object oRef = lista.get(i);
//            System.out.println(oRef);
//        }

//        for(Object oRef: lista) {
//            //para cada objeto oRef desta lista...
//            System.out.println(oRef);
//            
//        }




    }

}
3 respostas

Oi Eduardo, tudo tranquilo?

Tem como você postar aqui sua classe Conta.java?



package br.com.bytebank.banco.modelo;

/**
 * Classe representa a abertura de uma conta
 * @author Eduardo
 *
 */

public abstract class Conta {

    protected double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;
    private static int total = 0;

    /**
     * Construtor da conta
     * @param agencia
     * @param numero
     */

    public Conta(int agencia, int numero){
        Conta.total++;
        //System.out.println("O total de contas é " + Conta.total);
        this.agencia = agencia;
        this.numero = numero;
        //this.saldo = 100;
        //System.out.println("Estou criando uma conta " + this.numero);
    }

    public abstract void deposita(double valor);

    /**
     * Valor precisa ser maior que o saldo
     * @param valor
     * @throws SaldoInsuficienteException
     */


    public void saca(double valor) throws SaldoInsuficienteException{

        if(this.saldo < valor) {
            throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", Valor: " + valor);
        } 

        this.saldo -= valor;       
    }

    public void transfere(double valor, Conta destino) throws SaldoInsuficienteException{
        this.saca(valor);
        destino.deposita(valor);
    }

    public double getSaldo(){
        return this.saldo;
    }

    public int getNumero(){
        return this.numero;
    }

    public void setNumero(int numero){
        if(numero <= 0) {
            System.out.println("Nao pode valor menor igual a 0");
            return;
        }
        this.numero = numero;
    }

    public int getAgencia(){
        return this.agencia;
    }

    public void setAgencia(int agencia){
       if(agencia <= 0) {
           System.out.println("Nao pode valor menor igual a 0");
           return;
       }
       this.agencia = agencia;
    }

    public void setTitular(Cliente titular){
        this.titular = titular;
    }

    public Cliente getTitular(){
        return this.titular;
    }

    public static int getTotal(){
        return Conta.total;
    }

}
solução!

Já saquei seu problema. Repare que está faltando um trecho no seu código de Conta, mais especificamente está faltando sobrescrever o método toString.

Adicione dentro da classe:

    @Override
    public String toString() {
        return "Numero: " + this.numero + ", Agencia: " + this.agencia;
    }

Assim seu problema será resolvido :)