Je voudrais de l'aide à ce sujet,Comment obtenir le nom de la classe appelante en Java?
Exemple:
public class A {
private void foo() {
//Who Invoked me
}
}
public class B extends A { }
public class C extends A { }
public class D {
C.foo();
}
Ceci est essentiellement le scénario. Ma question est de savoir comment la méthode foo()
peut savoir qui l'appelle? Fondamentalement, j'essaye de faire un calque de base de données, et dans la classe A je vais créer une méthode qui va générer des instructions SQL. Ces instructions sont générées dynamiquement en obtenant les valeurs de toutes les propriétés publiques de la classe appelante.
Ce code compilera-t-il même? – Spoike
Non, il ne sera pas compilé. –
Une méthode qui modifie son comportement en fonction de la classe de l'appelant active vraiment la programmation orientée objet sur sa tête. Comment pouvez-vous tester une telle classe et se comporter de la même manière dans le test que dans la production? Il doit y avoir une meilleure façon d'implémenter ce que vous faites ... – daf