Pessoal, coloquei em attach um método que estou tendo problemas.... Ele carrega um vetor corretamente mas na hora de retorná-lo ocorrem algumas alterações. Coloquei vários comentários para auxiliar no compreendimento do método.... por favor dêem uma olhada.... estou com urgência disso e não consigo resolver o problema.... []'s Valter
O problema que está acontecendo é o seguinte: Dentro do for, o vetor é carregado corretamente, com três objetos do tipo Fornecimento. Eu sei disso por que já testei. Quando o for acaba e vai dar o "return vetor" o conteúdo do vetor já não é mais o mesmo !!! Explicando melhor: Depois da última repetição do for, o primeiro objeto fornecimento do vetor, possui um fornecedor de código 1, o segundo um fornecedor de código 2 e um terciro fornecedor de código 3. Se eu mandar imprimir os códigos dos fornecedores fora do "for", isto é, uma linha antes dele retonar (return) aparecerá que o primeiro objeto fornecimento do vetor possui código 2 ! o segundo código 3! e o terceiro também código 3 !!! public Vector SetObject2(ResultSet rsFornec) { Vector vetor = new Vector(); try { // inicio da declaração das variáveis necessárias int material; Vector vectorFornecedor = new Vector(); Vector vectorMaterial = new Vector(); Vector vectorDataFornecimento = new Vector(); Integer codFornecedor; Integer codMaterial; int codMaterialI; int codFornecedorI; String dataFornecimento; CodigoFornecimento codigoFornecimento; Fornecimento fornecimento1; material material1 = new material(); Fornecedor fornecedor1 = new Fornecedor(); ResultSet rsMaterial; ResultSet rsFornecedor; // final da declaração das variáveis necessárias int i = 0; // while responsável por criar tres vetores. Um com o codigo dos fornecedores, outro // com o código dos materiais e outro com a data de fornecimento. Tudo pego do resultSet // que chegou como parâmetro. while (rsFornec.next ()) { codFornecedor = new Integer(rsFornec.getInt ("fornecedor")); codMaterial = new Integer(rsFornec.getInt ("material")); vectorMaterial.addElement (codMaterial); vectorFornecedor.addElement (codFornecedor); vectorDataFornecimento.addElement (rsFornec.getString ("dataFornecimento")); } // o objetivo do for é criar um vetor de objetos do tipo Fornecimento. O objeto do tipo // fornecimento é formado por um objeto do tipo CodigoFornecimento e uma String dataFornecimento. // o objeto do tipo CodigoFornecimento é formado pelos objetos Material e Fornecedor. // sendo assim, primeiro eu carrego um objeto fornecedor, depos um material, crio o objeto // codigoFornecimento e crio um objeto Fornecimento. E em seguida adiciono no vetor. O for // repete esta ação para todos os elementos do vetor de codigos de fornecedor criado no while // anterior. for (int cont = 0; cont < vectorFornecedor.size (); cont++) { codFornecedor = (Integer)vectorFornecedor.elementAt(cont); codMaterial = (Integer)vectorMaterial.elementAt (cont); codMaterialI = codMaterial.intValue (); codFornecedorI = codFornecedor.intValue (); dataFornecimento = (String)vectorDataFornecimento.elementAt (cont); fornecedor1.setCodigo (codFornecedorI); rsFornecedor = null; rsFornecedor = fornecedor1.findlike (); // o método findlike procura esse objeto no banco e joga os dados em um RS. if (rsFornecedor.next ()) { fornecedor1 = fornecedor1.SetObject (rsFornecedor); // o método SetObject pega os dados do rs passado e cria um objeto } material1.setCodigo (codMaterialI); rsMaterial = null; rsMaterial = material1.findlike (); if (rsMaterial.next ()) { material1 = material1.SetObject (rsMaterial); } codigoFornecimento = new CodigoFornecimento(material1,fornecedor1); //cria objeto codigoFornecimento fornecimento1 = new Fornecimento(codigoFornecimento, dataFornecimento); // cria objeto Fornecimento vetor.insertElementAt (fornecimento1,cont); adiciona elemento no vetor // se eu mandar imprimir aqui está tudo certo... } // Se eu mandar iprimir aqui ele já trocou tudo... return vetor; } catch (Exception e) { return null; } }
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------