Czy można odzyskać wywołanie metody/konstruktora?Pobierz instancję wywołującą (nie klasę) metody lub konstruktora.
To pytanie zostało już opublikowane, ale za każdym razem, gdy odpowiedzi dotyczą klasy dzwoniącego (za pomocą stosu stacktrace), a nie instancji wywołującego. Jeśli istnieje rozwiązanie, może być naprawdę wygodne zbudowanie wykresu obiektu (z typem super popularnym) i obsługa nawigacji nadrzędnej podrzędnej za pomocą domyślnego konstruktora.
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
}
}
Jon, dzięki za to potwierdzenie. – fedevo