Preciso de uma ajuda!
Eu crio um ArrayList em uma classe preencho este e na outra classe quando vou usa-ló ele está vazio.
Quando faço a instância da classe ele cria novamente o ArrayList, não é verdade?
Agora como faço para usar um ArrayList preenchido em uma classe diferente da que o criei?
ps* Não sei se é isso exatamente que vocÊ quer… posta seu código, pois assim é dificil saber qual é realmente sua duvida caro colega!
ViniGodoy
Por que:
Seu static teria que ser público, o que torna ele uma variável global. Elas tendem a tornar o programa instável, já que com o tempo vc esquece de onde são usadas.
Não é uma solução encapsulada. A classe que controla o arraylist pode fazer verificações, coisas static não são verificadas;
Variáveis static jamais são coletadas da memória, a menos que vc explicitamente set elas como null. Isso cria altas chances de memory leaks no seu programa;
Variáveis static podem deixar uma implementação completamente hostil contra multi-threading. Nem com sincronização resolveria o problema.
Thiago_Luis
ViniGodoy:
Por que:
Seu static teria que ser público, o que torna ele uma variável global. Elas tendem a tornar o programa instável, já que com o tempo vc esquece de onde são usadas.
Não é uma solução encapsulada. A classe que controla o arraylist pode fazer verificações, coisas static não são verificadas;
Variáveis static jamais são coletadas da memória, a menos que vc explicitamente set elas como null. Isso cria altas chances de memory leaks no seu programa;
Variáveis static podem deixar uma implementação completamente hostil contra multi-threading. Nem com sincronização resolveria o problema.
Maravilha,
Vou tomar mais cuidado ao usar static da próxima vez.
Não sabia dessas paradas não
Vlw pela força.
Dan_Pimentel
Thiago Luis:
ViniGodoy:
Thiago Luis:
Olá, tudo com.
Cria o ArrayList como static.
Assim, ele não criará outro ArrayList.
Abraço
Essa geralmente é uma péssima solução para o problema. Eu diria que é está entre as piores possíveis.
É preferível passar o ArrayList como parâmetro.
Seria uma solução bem mais simples
Por que que é ruim utilizar esta forma?
Explica ai que isso me interessou.
Abraço
Estou com o mesmo problema, tenho várias classes que precisam modificar a mesma arraylist, como posso fazer isso sem usar o static?
Grato, desde ja.
ViniGodoy
Dan Pimentel:
Thiago Luis:
ViniGodoy:
Thiago Luis:
Olá, tudo com.
Cria o ArrayList como static.
Assim, ele não criará outro ArrayList.
Abraço
Essa geralmente é uma péssima solução para o problema. Eu diria que é está entre as piores possíveis.
É preferível passar o ArrayList como parâmetro.
Seria uma solução bem mais simples
Por que que é ruim utilizar esta forma?
Explica ai que isso me interessou.
Abraço
Estou com o mesmo problema, tenho várias classes que precisam modificar a mesma arraylist, como posso fazer isso sem usar o static?
Grato, desde ja.
Passando o ArrayList como parâmetro para todas elas.