Sie haben drei Möglichkeiten. Sie können das anrufende Objekt in der Bar-Methode übergeben:
Class A {
foo() {
new B().bar(this);
}
}
Class B {
bar(A caller) {
...
}
}
Oder Sie können die Klasse B eine innere Klasse der Klasse A machen:
Class A {
foo() {
new B().bar();
}
Class B {
bar() {
A caller=A.this;
...
}
}
}
Wenn alles, was Sie die Klasse brauchen, ist eher als die Objektinstanz , Sie haben eine dritte Wahl. Wenn Sie verwenden, können Sie den qualifizierten Namen einer Klasse an einem beliebigen Punkt im Stapel abrufen und mithilfe von Reflection die Klasseninstanz abrufen. Aber das ist so schrecklich, Sie sollten entweder Ihr Design reparieren, oder (wenn Sie Ihren eigenen Debugger oder etwas ähnliches schreiben) versuchen Sie ein einfacheres Projekt, bis Sie genug über Java wissen, um diese Art von Sache für sich selbst herauszufinden ...
Es klingt für mich wie Sie versuchen, dies zu verwenden, um ein bestimmtes Problem zu lösen. Können Sie uns sagen, welches Problem Sie eigentlich lösen wollen? Es ist wahrscheinlich eine einfachere Lösung für das eigentliche Problem. –
@matt b: Ich war gerade dabei, nur diesen Kommentar zu posten – Claudiu