Java Tips: Passando tipos primitivos por referência
Por padrão no Java os tipos primitivos (int,long,double,etc..) são passados por valor e não por referência. Portanto caso você altere o valor de um tipo primitivo dentro de um método, essa mudança não será visível fora da chamada do método. Por exemplo:
public void atualizaContador(int contador) { contador++; } int contador = 0; atualizaContador(contador); //contador agora = 0
Existem várias formas de contornar essa situação e obter o resultado desejado, como por exemplo, a criação de uma classe auxiliar… Porém uma maneira bem simples de resolver é criar um array com um único elemento. Arrays de tipos primitivos em java são passados como referência e não por valor:
public void atualizaContador(int[] contador) { contador[0]++; } int[] contador = new int[1]; contador[0] = 0; atualizaContador(contador); //contador[0] agora = 1
Deixe um comentário