Pessoal tenho duas classes: A e B. Existe uma forma de instanciar a classe A na B e a classe B na A dentro do mesmo projeto?
Curiosidade: existe uma forma de instanciar um classe na outra?
4 Respostas
Cara, eu fiz aqui dessa forma e o Eclipse nao reclamou de nada...
public class A {
private B b = new B();
}
public class B {
private A a = new A();
}
Mas quando tentei executar um codigo qualquer populando as variaveis tomei um StackOverflowError. Em tempo de compilação não acontece nenhum erro, mas na hora de executar você poderia colocar um controle de a variavel seria preenchida ou não...
Sim!
Mas isso caracteriza forte acoplamento, o que não é recomendado em um projeto O.O.
Valeu!
Deu Stack StackOverflowError porque ele entrou num loop infinito.
no contrutor de A cria um novo B
no construtor de B cria um novo A
que cria um novo B
que cria um novo A
que cria um novo B
que cria um novo A
que cria um novo B
que cria um novo A
que cria um novo B
que cria um novo A
que cria um novo B
que cria um novo A
…
e assim infinitamente até a memória da pilha acabar, além disso esse esquema de criar relacionamentos bidirecionais naum é muito recomendado http://blog.caelum.com.br/page/3/
Pessoal valeu pela dica.