Benfeitor 0 Denunciar post Postado Julho 16, 2008 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
Kandrade 7 Denunciar post Postado Julho 20, 2008 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
Discorpio 1 Denunciar post Postado Agosto 5, 2008 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
sublyer 0 Denunciar post Postado Agosto 5, 2008 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
Discorpio 1 Denunciar post Postado Agosto 5, 2008 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
sublyer 0 Denunciar post Postado Agosto 6, 2008 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