2012-05-05 2 views
0

Есть ли способ получить родительский объект, который является aaaa в этом случае, не передавая его явно B?Получение родительского объекта без передачи его ссылки

class A { 
    B b = new B(); 
} 

class B { 
    public void getParent(){ 
} 

A aaaa = new A(); 
+2

Что такое родительский объект? Объект, который содержит ссылку на 'B'? И что, если несколько объектов сохраняют ссылки на 'B'? – Vlad

+0

Короткий ответ - нет. –

+2

Нет. Нет родителя. объекты автоматически не знают, где они были созданы. Объекты в списке не имеют доступа к списку, например, если не указаны ссылки. –

ответ

2

вы можете передать аааа как argumet конструктору B

class A { 
    B b = new B(this); 
} 

A aaaa = new A(); 

class B { 
    private A parent; 
    public B(A parent) { 
     this.parent = parent; 
    } 
} 
0

Если вы имеете в виду объект, который создал текущий экземпляр (а не один, который содержит ссылку на, потому что может быть много объектов, ссылающихся на этот объект), вы можете перемещаться по стеку вызовов, чтобы найти объект-экземпляр в конструкторе.

Смежные вопросы