mit der Methode
%Vor%Gibt es eine Möglichkeit, den Methodennamen (in diesem Fall foo) zur Laufzeit zu erhalten?
Ich weiß, wie man den Klassennamen über
bekommtthis.getClass (). getName ()
oder um alle öffentlichen Methoden zu bekommen %Code% Sobald ich den Methodennamen habe, wären die Parameter auch wichtig, da es mehrere Methoden mit demselben Namen geben könnte
Ich bin nicht sicher, warum Sie dies tun müssen, aber Sie können immer ein new Throwable()
erstellen und getStackTace()
, dann abfragen StackTraceElement.getMethodName()
.
Als Bonus erhalten Sie die ganze Stapelverfolgung bis zum Ausführungspunkt, nicht nur die sofort umschließende Methode.
Reflexion ist ein Weg. Ein weiterer langsamer und potenziell unzuverlässiger Weg ist mit eine Stapelverfolgung.
%Vor%Die gleiche Idee, aber aus dem Thread :
%Vor%Diese Frage wurde vor Jahren gestellt, aber ich denke, dass es sich lohnen würde, die vorherigen Antworten in einem einfacheren Ausdruck zu synthetisieren:
%Vor% Trotz seiner Hässlichkeit und der genannten Zuverlässigkeitsprobleme ist es sauber und kann leicht mit Log.x()
functions benutzt werden, um beim Debuggen zu helfen.
Tags und Links java reflection