Passagem por referência

galera tenho o seguinte metodo

 public static int proximoCodigo(String gen , String tabela , String campoBusca ,  Connection con)throws SQLException{

eu gostaria de saber o seguinte, se eu executar um con.close() dentro do metodo,

o con que eu utilizei para passar na função tambem vai receber o .close

Sim, pois vc está está passando o próprio objeto, então qq mudança que fizer com ele no método, vai mudar seu valor tb fora do método.

Blz? Flw! :thumbup:

e como eu faria pra passar uma copia do objeto, tem como ???

Uma boa saída pra fazer cópias de objetos (principalmente quando a árvore é complexa, com muitos filhos, netos, etc) é a serialização. Você pode procurar no google por isso. Tem um artigo sobre isso na última Mundo Java, se não me engano. Mas já te falo que às vezes é inviável posto que é um processo “pesado”, consome bastantes recursos da JVM.

Mas como o objeto em questão é do tipo Connection, acho que você pode estar buscando a solução errada. Tem como você postar o seu problema específico pra gente palpitar melhor?

Olá, tudo bem…

kara não sei se eu entendi dirento seu problemas, mas na maioria dos casos, eu resolvo estes problemas com o Design Pattern Sigleton…

de uma olhado, ele te garante que somente tera uma instancia de determinada classe…

Abraços…

Então o meu problema é o seguinte,

eu passo minha conexao no parametro, ´só que é esquisito, se eu não der um close dentro do metodo, o close que eu dou fóra não adianta.

ou seja, se eu fechar a connection de fora ainda fica uma conexão no banco, dai eu tenho q fechar a de dentro do metodo. Não era pra ser a mesma??

Oque eu queria :

Uma unica conexao com o banco, e varios objetos connection independentes, mais acho q não tem como né?

Você está passando pro método uma referência do objeto connection na memória, logo está manipulando o mesmo objeto. Teste direito porque é pra funcionar.
Mas dê uma pesquisada também (aqui no GUJ e no Google) por “Connection Pool”. Acho que é disso que você precisa.

Olá,

Do jeito que vc explicou, deveria estar funcionando, independente de vc
estar fechando dentro ou fora do método proximoCodigo, pois o Java
só passa objetos por referência, apenas as variáveis primitivas o Java
passa por valor.

Acho que não compensa vc buscar uma solução complicada para
algo simples. Se vc quer que o fórum te ajude de maneira mais
eficiente poste a sua função proximoCodigo, talvez vc esteja errando
eu algum outro conceito que não tenha nada a ver com passagem
por referência, como por exemplo atribuir uma nova conexão
internamente para o parâmetro “con”, não estou dizendo que vc está
fazendo isso, mas isso explicaria o porquê desse problema que
vc relatou.

abs…

Vlwss Galeraaaaaaaaaaa!!! …

Blezeraaaaaaaaaaaa