Можно ли получить вызывающий экземпляр метода / конструктора?
Этот вопрос уже был был опубликован, но каждый раз в ответах говорится о классе вызывающего абонента (с использованием stacktrace), а не об экземпляре вызывающего. Если решение существует, может быть действительно удобно построить граф объектов (с общим супер-типом) и обрабатывать родительскую дочернюю навигацию с помощью конструктора по умолчанию.
public class TestCallStack {
public static class BaseClass {
BaseClass owner;
// //ok, this is the correct way to do it
// public BaseClass(BaseClass owner) {
// this.owner = owner;
// }
public BaseClass() {
//this.owner = ???????;
}
}
public static class Parent extends BaseClass {
Child child = new Child();
}
public static class Child extends BaseClass {
}
public static void main(String[] args) {
Parent parent = new Parent();
System.out.println(parent.child.owner==parent); // must be true
}
}