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.
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:
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…
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…
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…
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.