Ok Sérgio acho que entendi... então... como eu faria para que a cada loop do
"for" eu criasse um objeto se eu não sei quantos objetos eu precisarei ?

Valter

"Sergio Oliveira Jr." wrote:

> Todos os objetos em Java são referencias.
>
> Referencia = ponteiro bem comportado
>
> Quando voce coloca um objeto dentro de um vetor, voce esta colocando sua
> referencia e nao uma copia dele.
>
> No seu segundo loop (for) voce utiliza novamente os objetos que já foram
> introduzidos no vetor no primeiro loop (while).
>
> Quando voce modifica o valor deles, automaticamente voce esta modificando o
> objeto que esta dentro do vetor. As referencias são iguais, apontam para o
> mesmo objeto.
>
> Apenas variaveis primitivas em Java sao passadas por copia. Todo o resto eh
> passado por referencia.
>
> []s
>
> Sergio
>
> >From: valter vieira de camargo <[EMAIL PROTECTED]>
> >Reply-To: [EMAIL PROTECTED]
> >To: [EMAIL PROTECTED]
> >Subject: [java-list] problemas com Vector. URGENTE!!!!!
> >Date: Tue, 27 Mar 2001 16:17:06 -0300
> >
> >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]
> >-------------------------------------------------------------------------
>
> _________________________________________________________________________
> Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
> ------------------------------ 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]
> -------------------------------------------------------------------------


------------------------------ 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] 
-------------------------------------------------------------------------

Responder a