Fazer dois objetos apontarem para a mesma referência

9 respostas
D

Boa dia.

Eu gostaria de saber como fazer para espelhar dois objetos, ou apontarem para a mesma referência.

Vou explicar melhor o meu caso, eu tenho uma classe chamada Repositório, onde eu mantenho alguns objetos que são capturados no método construtor de algumas classes.

Ex:

// Código do repositório:

public class Repositorio{
    private static Objeto obj;

    public static void setObjeto(Objeto o){
            this.obj = o;
    }

    public static Objeto getObjeto(){
           return this.obj;
    }
}

/// código da Classe1:

public class Objeto{

     public Objeto(){
          // No contrutor eu coloco o Objeto no repositório...
          Repositorio.setObjeto(this);
     }

}

Eu gostaria que quando eu fizesse: Repositorio.getClasse1().qualquerOperacaoo(); ele refletisse no " real " objeto. e vice versa.

9 Respostas

mauricioadl

cara, nao consegui entender o que voce quer.

consegue explicar melhor???

walissongpi

Está realmente confusa a sua explicação, mas vamos tentar resolver seu problema.
Se você declarar o objeto como “static” na classe, a classe terá somente uma cópia deste objeto. Talvez isso ajude.
Mas você pode atribuir a referencia do objeto a outro objeto:

Object objNovo = new Object(); Object obj1 = objNovo; Object obj2 = objNovo;

D

Vamos lá, vou ver se consigo explicar melhor…

Tenho duas Classes, UMA É um repositório de Objetos, onde eu mantenho alguns objetos que são capturados no construtor de algumas classes…

Vamos imaginas q eu tenho um List na classe repositório, onde a cada instância da classeExemplo eu adiciono nessa lista na classe repositório, mas ao capturar algum objeto na minha lista ( que esta na classe repositório ) e alterar qqr valor desse objeto não reflete no Objeto Original que foi capturado no contrutor da classe.
E eu gostaria que refletisse…

Eu vi algo sobre a interface Clonable e o método clone(), mas pelo que vi ele copia os valores dos campos, e não espelha o Objeto para que ao alterar o valor em um ele fazer o mesmo em outro…

mauricioadl

eh so voce fazer a um metodo static que muda o atributo da sua classe, assim vai afetar todas as outras instancias dela.

D

Se eu definir o método como static, vou ter que definir o atributo tb, e isso não vai ser viável pois eu vou ter vários objetos com valores diferentes… :confused:

mauricioadl

mais se voce quer q todos fiquem com a mesma referencia a consequencia é que todos terao o mesmo valor.

D

Seguinto o exemplo que eu dei acima, a classeExemplo vai ter várias instâncias … e cada uma com seus valores, o o meu repositório vai ter uma lista que vai guardar cada uma das instâncias criadas, e ao alterar um item da lista quero que ele altere o original…

pmlm

Acho que estás a complicar…

Se eu entendi o que tu queres é isto:

Object a = new Object();
Object b = new Object();

List list = new ArraList();

list.add(a);
list.add(b):

list.get(0).setProperty("xxx");

a.getProperty() // Obter xxx

É isto? Se é isto não precisas de fazer nada… O primeiro objecto da lista e a são o mesmo objecto.

D

AhUAHUAhaUUhauAh eu sei cara …

acho que vou desistir do tópico ngm conseguiu entender oq eu quero… ou eu não consegui explicar…

Mas valeu pela atenção ai pessoal…

Criado 15 de dezembro de 2011
Ultima resposta 15 de dez. de 2011
Respostas 9
Participantes 4