Come si ottiene il nome del metodo di inclusione al momento della compilazione?Come posso ottenere il nome del metodo al momento della compilazione?
E perché è stato difficile per me capirlo? Perché Java non voleva che lo facessi? Non vedo alcun problema inerente con una caratteristica del genere, ed è utile per i nomi dei metodi di registrazione, senza doppioni tra la firma del metodo e la costante stringa in questo modo:
private void methodName() {
final String MN = "methodName";
...
Qualcuno potrebbe cambiare il nome del metodo senza cambiare la Costante MN, quindi non riesco a trovarlo nel registro.
So che Java ha un metodo (riflettente?) Per fare ciò, ma perché chiunque vorrebbe complicare eccessivamente le cose e creare la possibilità di errori con una soluzione di runtime (per questo particolare problema) è oltre me.
Apparentemente i macro sono una cattiva pratica, ma penso che questo sia un caso di utilizzo piuttosto buono per loro. Questo è quello che sto fondamentalmente andando, qualcosa come una macro, una costante.
Btw, questa domanda è abbastanza simile:
Getting the name of the current executing method
Nessuna delle soluzioni sono costanti derivati al momento della compilazione, però. Sono tutti calcoli runtime.
MODIFICA: Perché non è possibile farlo in fase di compilazione?
Si prega di non dare una risposta banale come "è così che è stato progettato Java", perché poi mi chiederò solo "perché?"
* Quale * nome del metodo? Per favore spiega più chiaramente cosa stai cercando di realizzare esattamente. (La risposta potrebbe essere che è necessario utilizzare gli handle del metodo Java 8). – chrylis
Se si utilizza un framework di registrazione, acquisire il nome del metodo è già stato risolto. –
modificato per chrylis – Mike