Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Java - Objetos com a mesma referência

Olá minha duvida é a seguinte:

List<String> lista1 = new ArrayList<>();
List<String> lista2 = lista1;

Ao fazer isso os dois objetos são o mesmo, possuem a mesma referência.

Porém ao fazer algo assim por exemplo:

class Produtos(){
    List<String> lista2;    
}


List<String> lista1 = new ArrayList<>();
Produtos produtos = new Produtos();
produtos.lista2 = lista1;

Neste segundo caso lista1 e lista2 são objetos diferentes, possuem uma referencia diferente, alguém sabe se é possível fazer os dois serem o mesmo, talvez trabahar com ponteiro?

3 respostas
solução!

Já consegui, é so fazer o atributo ser estático.

Já consegui, é so fazer o atributo ser estático.

Tenha em mente que a palavra NEW serve para a criação de objetos, e a referência serve para manipular o objeto.

List lista1 = new ArrayList<>(); List lista2 = new ArrayList<>();

Temos 2 comandos NEW , logo 2 objetos , 1 para cada referência (lista1 e lista2).

List lista1 = new ArrayList<>(); List lista2 = new ArrayList<>(); lista1 = lista2;

Incialmente temos a mesma situação que foi explicada acima , mas ao fazer "lista1 = lista2;" a referência lista1 aponta para o mesmo objeto referenciado por lista2, e o objeto que lista1 referenciava não possui mais nenhuma outra referência, então em algum momento ele será coletado pelo o garbage collector.

No segundo exemplo lista1 e lista2 são referências para o mesmo objeto, independente se lista2 está encapsulado em outro objeto.