Esistono lingue che consentono al contesto statico di una chiamata del metodo a essere disponibile in fase di esecuzione?
https://softwareengineering.stackexchange.com/questions/127951
-
03-11-2019 - |
Domanda
È possibile che un metodo conosca il tipo di metodo che viene chiamato in? Quindi, ad esempio, nel codice PSUEDO orientato all'oggetto seguente:
Instance io = new InstanceSubclass();
io.doStuff();
C'è una lingua che lo consente doStuff()
sapere che è stato chiamato come un Instance
?
La domanda è sorta dal fatto che Java non fornisce alcun tipo di supporto per gli scontri del nome dell'interfaccia, ad esempio se si crea una classe che implementa le interfacce A e B che hanno entrambi una firma del metodo come void doWork()
sarebbe possibile per il corpo di doWork()
fare qualcosa di simile a quanto segue:
public void doWork() {
Class<?> context = getMethodCallContext();
if(context == InterfaceA.class) {
doAsInterfaceA();
}
else if(context == InterfaceB.class) {
doAsInterfaceB();
}
else {
// Shenanigans and error handling
}
}
Non ho intenzione di scrivere alcun codice che sfrutta questa funzione per farlo pure di un anti-pattern in attesa di accadere, voglio solo sapere se si può fare, in tal caso, in caso affermativo quali lingue lo consentono?
Nessuna soluzione corretta