Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Benfeitor

no ArrayList

Recommended Posts

Salve Galera,

 

Por gentileza alguém poderia me informar porque está dando erro nesse ArrayList? o erro é o seguinte: at BrinquedoInfantil.toString(BrinquedoInfantil.java:20).

 

A classe está dessa forma.

 

Obs: as outras classes com os gets e sets estão todas aparentemente perfeitas.

 

import java.util.ArrayList;

public class Brinquedos {

 

private ArrayList brinquedos;

 

public Brinquedos(){

this.brinquedos = new ArrayList();

}

 

public void insere(Brinquedo brinquedo){

this.brinquedos.add(brinquedo);

}

 

public String toString () {

StringBuffer sb = new StringBuffer();

for (int i = 0; i < this.brinquedos.size(); i++ ) {

Brinquedo brinquedo = (Brinquedo) this.brinquedos.get(i);

sb.append(brinquedo.toString());

}

return sb.toString();

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce está efetuando uma sobrecarga no método toString.

O erro está nesse método.

 

Eu não entendi qual o objetivo dessa classe e nem do método. Se voce puder explicar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos.

 

Eu não tenho certeza, mas acho que o erro está na declaração do ArrayList, assim:

 

// Errado.
private ArrayList brinquedos;

// Estas estão certas.
private ArrayList<String> brinquedos;

private ArrayList<Integer> brinquedos;

Se voce não sabe qual é o tipo do objeto na declaração da ArrayList, então declare como Collection, assim:

 

import java.util.ArrayList;

public class Brinquedos {

   private Collection brinquedos;

   public Brinquedos(){
		this.brinquedos = new ArrayList();
   }

   public void insere(Brinquedo brinquedo){
	   this.brinquedos.add(brinquedo);
}

   public String toString () {
		  StringBuffer sb = new StringBuffer();
		  
		  Iterator it = this.brinquedos.Iterator;
		  while (it.hasNext) {
			 Brinquedo brinc = (Brinquedo)it.next;
			 b.append(brinc.toString());
		  }

		  return sb.toString();
	}
}

A classe Iterator é uma classe auxiliar que recebe como referência o conteúdo de uma Coleção (Collection).

 

Um abraço.

 

Jorge da Silva Abreu

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema se encontra no método toString , verifique as sobrecargas.

 

Agora desculpe a pergunta, mas porquê você está dando um toString na classe para adicionar a um StringBuffer ?

 

Flww, grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos.

 

Sublyer, me desculpe a minha falha.

 

Só agora eu percebi que o método toString() está presente na classe Object.

 

Estou iniciando no Java agora, assim sendo o nosso amigo Benfeitor se quiser utilizar o método toString() com o mesmo nome, terá que modificar o escopo do método, acrescentando algum parâmetro, então a minha sugestão é que ele modifique o método assim:

 

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Collection;

public class Brinquedos {

   private Collection brinquedos;

   public Brinquedos(){
		this.brinquedos = new ArrayList();
   }

   public void insere(Brinquedo brinquedo){
	   this.brinquedos.add(brinquedo);
}

   public String toString (StringBuffer sb) {
		 
		  Iterator it = this.brinquedos.Iterator;
		  while (it.hasNext) {
			 Brinquedo brinc = (Brinquedo)it.next;
			 b.append(brinc.toString());
		  }

		  return sb.toString();
	}
}

Quando for chamar o método é só passar o parâmetro do tipo StringBuffer.

 

Eu entendi o que o Benfeitor quis fazer, ou seja, implementar o mesmo método de conversão toString para a sua classe Brinquedos.

 

Um abraço.

 

Jorge da Silva Abreu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, mas realmente não entendi o porque de colocar classe (objeto) em string, alguém poderia me dizer qual a aplicação desse caso?

 

Flwww, grande abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.