würde ich in dieser Angelegenheit etwas Hilfe,Wie erhält man den Namen der aufrufenden Klasse in Java?
Beispiel:
public class A {
private void foo() {
//Who Invoked me
}
}
public class B extends A { }
public class C extends A { }
public class D {
C.foo();
}
Dies ist im Grunde das Szenario. Meine Frage ist, wie kann Methode foo()
wissen, wer es anruft?
BEARBEITEN: Grundsätzlich versuche ich eine Datenbank-Ebene zu erstellen, und in Klasse A werde ich eine Methode erstellen, die SQL-Anweisungen generiert. Solche Anweisungen werden dynamisch generiert, indem die Werte aller öffentlichen Eigenschaften der aufrufenden Klasse abgerufen werden.
Wird dieser Code sogar kompiliert? – Spoike
Nein, es wird nicht kompiliert. –
Eine Methode, die ihr Verhalten basierend auf der Klasse des Aufrufers ändert, macht die objektorientierte Programmierung wirklich auf dem Kopf. Wie kann man eine solche Klasse testen und sich im Test genauso verhalten wie in der Produktion? Es muss einen besseren Weg geben, um das zu implementieren, was Sie tun ... – daf