Получить экземпляр вызывающего (не класс) метода или конструктора

Можно ли получить вызывающий экземпляр метода / конструктора?

Этот вопрос уже был был опубликован, но каждый раз в ответах говорится о классе вызывающего абонента (с использованием 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
    }
}
6
задан ivan_pozdeev 23 October 2014 в 20:07
поделиться