Vorrei un po 'di aiuto su questa materia,Come ottenere il nome della classe chiamante in Java?
Esempio:
public class A {
private void foo() {
//Who Invoked me
}
}
public class B extends A { }
public class C extends A { }
public class D {
C.foo();
}
Questo è fondamentalmente lo scenario. La mia domanda è: come può il metodo foo()
sapere chi lo sta chiamando?
EDIT: Fondamentalmente sto cercando di creare un livello di database e in Classe A creerò un metodo che genererà istruzioni SQL. Tali istruzioni vengono generate dinamicamente ottenendo i valori di tutte le proprietà pubbliche della classe chiamante.
Questo codice può essere compilato? – Spoike
No, non verrà compilato. –
Un metodo che modifica il suo comportamento in base alla classe del chiamante inverte davvero la programmazione orientata agli oggetti. Come puoi testare una classe del genere e comportarsi allo stesso modo nel test come nella produzione? Deve esserci un modo migliore per implementare quello che stai facendo ... – daf