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)

Duvida sobre o exemplo do array de Objects

Fala galera blz? Fique com uma duvida referente ao exemplo do professor nico sobre o desafio do array de Objects. Para testar eu inclui tanto um objeto do tipo conta como um do tipo cliente dentro do array de Objects. Porem recebi a excecao de ArrayStoreException. Acredito - nao tenho certeza - que seja pq tenho dois tipos (Conta/Cliente)diferentes dentro de um mesmo array. Mas por ambos serem, referencias, nao deveria funcionar ? Fiquei com esse duvida galera, desde ja muito obrigado. Segue abaixo o codigo da classe teste e a saida do Console, se precisarem de mais algum trecho do codigo eh soh falar. Valeeeeeeu

public class Teste {

public static void main(String[] args) {

    GuardadorDeContas guardador = new GuardadorDeContas();

    Conta cc = new ContaCorrente(22,11);

    Conta cc2 = new ContaCorrente(33,44);

    Cliente cliente = new Cliente();
    cliente.setNome("UELEI");

    guardador.adiciona(cc);
    guardador.adiciona(cc2);
    guardador.adiciona(cliente);

    int tamanho = guardador.getQuantidadeDeElementos();
    System.out.println(tamanho);

    Conta ref = (Conta) guardador.getReferencia(1);
    System.out.println(ref.getNumero());

    Cliente clt = (Cliente)guardador.getReferencia(2);
    System.out.println(clt.getNome());
}

}


Console:

Exception in thread "main" java.lang.ArrayStoreException: br.com.bytebank.banco.Dominio.Cliente at br.com.bytebank.banco.Dominio.GuardadorDeContas.adiciona(GuardadorDeContas.java:16) at br.com.bytebank.banco.Teste.Teste.main(Teste.java:23)

7 respostas

Fala, Wesley!

Faltou você postar a dúvida... rsrs.

Edita aí e posta, pro pessoal poder ajudar.

Abraço.

Eita kkkkk q estranho pra mim aparece como enviada. Mas em todo o caso segue a duvida abaixo.Valeeeeu

Fala galera blz? Fique com uma duvida referente ao exemplo do professor nico sobre o desafio do array de Objects. Para testar eu inclui tanto um objeto do tipo conta como um do tipo cliente dentro do array de Objects. Porem recebi a excecao de ArrayStoreException. Acredito - nao tenho certeza - que seja pq tenho dois tipos (Conta/Cliente)diferentes dentro de um mesmo array. Mas por ambos serem, referencias, nao deveria funcionar ? Fiquei com esse duvida galera, desde ja muito obrigado. Segue abaixo o codigo da classe teste e a saida do Console, se precisarem de mais algum trecho do codigo eh soh falar. Valeeeeeeu

public class Teste {

    public static void main(String[] args) {

        GuardadorDeContas guardador = new GuardadorDeContas();

        Conta cc = new ContaCorrente(22,11);

        Conta cc2 = new ContaCorrente(33,44);

        Cliente cliente = new Cliente();
        cliente.setNome("UELEI");

        guardador.adiciona(cc);
        guardador.adiciona(cc2);
        guardador.adiciona(cliente);

        int tamanho = guardador.getQuantidadeDeElementos();
        System.out.println(tamanho);

        Conta ref = (Conta) guardador.getReferencia(1);
        System.out.println(ref.getNumero());

        Cliente clt = (Cliente)guardador.getReferencia(2);
        System.out.println(clt.getNome());
    }

}

---------------------------------------------------------------------------------

Console:

Exception in thread "main" java.lang.ArrayStoreException: br.com.bytebank.banco.Dominio.Cliente
    at br.com.bytebank.banco.Dominio.GuardadorDeContas.adiciona(GuardadorDeContas.java:16)
    at br.com.bytebank.banco.Teste.Teste.main(Teste.java:23)
insira seu código aqui

Boa tarde, Wesley! Como vai?

Vc poderia postar aqui o código da classe GuardadorDeContas?

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Wesley, provavelmente sua classe GuardadorDeContas está armazenando num Array do tipo Conta ou do tipo Cliente. O Array vai armazenar um tipo específico de objetos (daí você escolhe qual). Se quiser que o Array armazene qualquer tipo de objeto, você pode declará-lo como Object. Algo tipo:

ArrayList<Object> objetos = new ArrayList<Object>();

Note que isso é genérico demais e não faz muito sentido um Array de objetos diversos, a menos que o objetivo seja adicionar ao Array os brinquedos de uma criança (daí é aleatório mesmo... hehe).

Posso sim professor! vou postar abaixo deste comentário.

Fala Manoel blz? Valeu era kkk então no caso o professor deu esse exemplo mesmo, para mostrar o funcionamento de um array de objects. Só que quando adicionei dois tipos diferentes no array e testei ai veio esse erro...Isso que achei estranho e ainda não entendi.Segue a classe GuardadorDeContas mais uma vez obrigado todo mundo ae !

package br.com.bytebank.banco.Dominio;

public class GuardadorDeContas {

private Object[] referencias;
private int posicaoLivre;

public GuardadorDeContas() {

    this.referencias = new Conta[10];
    this.posicaoLivre = 0;
}

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

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

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

}

solução

Opa, Wesley!

Na aula o instrutor faz algo como Object[] referencias = new Object[10]; que é totalmente diferente do que vc fez. Veja que o array criado (new Object[10]) é de Object. Enquanto isso, no seu código, o array criado (new Conta[10]) é de Conta. Por isso o erro ocorre ao tentar inserir no array um objeto do tipo Cliente. Faça a correção no seu código para deixar igual ao que o instrutor fez que aí as coisas devem passar a funcionar da forma como vc esperava.

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Pouuuuutzzz verdade !!! Q vacilo rs. Obrigado Professor !

Grande abraço e boas festas ae !!!