Criação de array dentro de método

2 respostas
B

Olá, pessoal. Tenho uma dúvida em relação a criação de arrays dentro de métodos.
Quando eu declaro uma variável dentro de um método, ela existe somente dentro do método. E quando eu crio uma array? No código abaixo, por exemplo, eu crio uma array dentro de um método e passo sua referência para a variável list (externa ao método). Eu corro o risco de a variável list "apontar" para nada, porque a array foi criada dentro de um método e o método já foi finalizado (e a array foi eliminada junto com o método)?
Obrigado.

public class Exemplo {
  public static void main(String[] args) {
    int size = 5;
    int[] list = createList(size);
  }

  public static int[] createList(int size) {
    return new int[size];
  }
}

2 Respostas

M

Não, nesse caso você não corre o risco de ficar com sua variável list apontando para o nada.

Nesse caso sua variável list faz referencia para o objeto retornado pelo método.

O objeto criado somente seria perdido ao final do método createList(int size) se você fizesse algo assim:

public class Exemplo {
  public static void main(String[] args) {
    int size = 5;
    createList(size);
  }
  
  public static int[] createList(int size) {
    return new int[size];
  }
}

Dessa forma o objeto retornado não seria referenciado por nenhuma variável e se tornaria um candidato a ser coletado pelo Garbage Collector

B

Muito obrigado. Sanou minha dúvida. :slight_smile:

Criado 15 de janeiro de 2013
Ultima resposta 16 de jan. de 2013
Respostas 2
Participantes 2