2
respostas

Conversão de tipos

Boa noite.

Estou com erro no trecho de código

42        for (Object oRef : lista) {
43            System.out.println(oRef);
44        }

da classe "Teste", mensagem é referente ao nome "lista" da linha 43. A ajuda do eclipse pede para eu renomear o nome lista, não entendi.

Outro detalhe está no trecho de código

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

a ajuda pede para eu fazer um Casting na linha 36, se não fizer da erro.

Abaixo da mensagem de erro seguem as classes "GuardadorDeReferencias", "TesteGuardadorDeReferencias" e "Teste".

erro: Type mismatch: cannot convert from element type java.lang.Object to br.com.bytebank.banco.modelo.Object

Classe GuardadorDeReferencias

package br.com.bytebank.banco.modelo;

public class GuardadorDeReferencias {

    // variable
    private Object[] referencias;
    private int posicaoLivre;

    // constructor
    public GuardadorDeReferencias() {
        this.referencias = new Object[10];
        this.posicaoLivre = 0;
    }

    //methods
    public void adiciona(Object ref) {
        this.referencias[this.posicaoLivre] = ref;
        this.posicaoLivre++;
    }

    public int getQuantidadeDeElementos() {
        return this.posicaoLivre;
    }

    public Object getReferencia(int pos) {
        return this.referencias[pos];
    }
}

Classe TesteGuardadorDeReferencias

package br.com.bytebank.banco.test;

import br.com.bytebank.banco.modelo.Object;
import br.com.bytebank.banco.modelo.ContaCorrente;
import br.com.bytebank.banco.modelo.GuardadorDeContas;

public class TesteGuardadorReferencias {

    public static void main(String[] args) {
        GuardadorDeContas guardador = new GuardadorDeContas();

        Object cc = new ContaCorrente(22, 11);
        guardador.adiciona(cc);

        Object cc2 = new ContaCorrente(22, 22);
        guardador.adiciona(cc2);

        int tamanho = guardador.getQuantidadeDeElementos();
        System.out.println("Quantidade de elementos: " + tamanho + " elementos.");

        Object ref = guardador.getReferencia(1);
        System.out.println("Número da conta: " + ref.getNumero());
    }
}

Classe Teste

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

import java.util.ArrayList;

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

public class Teste {

    public static void main(String[] args) {

        ArrayList lista = new ArrayList();

        Object cc1 = new ContaCorrente(22, 11);
        lista.add(cc1);

        Object cc2 = new ContaCorrente(22, 22);
        lista.add(cc2);

        Object cc3 = new ContaCorrente(176, 211);
        lista.add(cc3);

        Object cc4 = new ContaCorrente(123, 322);
        lista.add(cc4);

        System.out.println("Tamanho " + lista.size());

        Object ref = (Object) lista.get(0);
        System.out.println("Número conta " + ref.getNumero());

        lista.remove(0);

        System.out.println("Tamanho " + lista.size());

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

        System.out.println("=======================");

        for (Object oRef : lista) {
            System.out.println(oRef);
        }
    }

}

Fico no aguardo.

2 respostas

Você criou uma classe chamada Object?

Boa noite.

Não criei. Precisaria? Na aula o Nico não criou esta classe Object e funcionou.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software