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
Please follow and like us:

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: