Problema de Casting!

1 resposta
AlexSales
Boa noite pessoal 

é o seguinte 

tenho um metodo toString sobrescrito como segue abaixo:

public String toString()

{

if (this.totalDeAlunos == 0)

{

return “[]”;

}//fim if

StringBuilder builder = new StringBuilder();

builder.append("[");

for (int i = 0; i < this.totalDeAlunos - 1; i++)

{

builder.append(this.objetos[i]);

builder.append(", “);

}//fim for

builder.append(this.objetos[this.totalDeAlunos - 1]);

builder.append(”]");
return super.toString();
}//fim toString

porém, quando no meu main quando eu mando imprimir a lista, ao inves de me
retornar uma saida como [aluno1, …, alunoX] ele esta me retornando o endereço de memoria… a referencia do objeto, pois a minha classe é generica …
meu main esta assim:

public static void main(String[] args)

{

//criando os alunos para serem armazenados no vetor

Aluno a1 = new Aluno();

Aluno a2 = new Aluno();

Aluno a3 = new Aluno();
a1.setNome("joao");
    a2.setNome("fred");
    a3.setNome("lucas");

    // criando vetor com nome lista
    Vector lista = new Vector();

    //adicionando alunos no vetor
    lista.adiciona(a1);
    lista.adiciona(a3);

     System.out.println(lista);

}//fim main

A minha classe vector nada mais é do que uma lista na qual meu array esta definido como :

private Object[] objetos = new Object[100];

Ah, so pra constar…esse exercicio e da apostila de estrutura de dados da caelum …

Entao, se alguem souber como resolvo esse problema e puder me ajudar ficaria agradecido !

Um abraço e obrigado desde ja !

1 Resposta

ViniGodoy

Você precisa sobrescrever o toString() da classe Vector:

public String toString() {
   StringBuilder sb = new StringBuilder("[");
   if (objetos.length > 1) {
        sb.append(objetos[0]);
   }

   for (int i = 1; i < objetos.length; i++) {
        sb.append(",").append(objeto.toString());
   }
   return sb.append("]").toString();
}

E o toString() da classe Alunos:

public String toString() {
    return getNome();
}

Quando postar códigos, deixe-os coloridos e identados. Eu quase não tive coragem de ler esse que vc postou aí. Se ainda não sabe fazer isso, aprenda esse e outros recursos do fórum lendo o tópico abaixo:
http://www.guj.com.br/posts/list/50115.java

Criado 23 de julho de 2009
Ultima resposta 23 de jul. de 2009
Respostas 1
Participantes 2