Profesjonell internettavhengig • Spillentusiast • Teknologiskaper
Profesjonell internettavhengig • Spillentusiast • Teknologiskaper

Finne hvilken metode som kaller en annen metode i Java

Hvordan få tak i kalleren til en Java-metode!
Denne siden er oversatt fra engelsk av mine svært motiverte AI-praktikanter for enkelhets skyld. De lærer fortsatt, så noen feil kan ha sneket seg gjennom. For den mest nøyaktige informasjonen, vennligst se den engelske versjonen.
Hjem Blogg Finne hvilken metode som kaller en annen metode i Java

Vær oppmerksom på at dette blogginnlegget ble publisert i oktober 2010, så avhengig av når du leser det, kan enkelte deler være utdaterte. Dessverre kan jeg ikke alltid holde disse innleggene helt oppdaterte for å sikre at informasjonen forblir nøyaktig.

    In some situations it could be handy to figure out who called a specific method at runtime, especially when a specific method is used by hundreds of methods and you have no clue how to recreate the execution.
    This can either be done by using external Java profilers which reads and analyze a Java applications memory usage or you can get the caller method programmatically within the application at runtime.
    This is done by basically instantly dumping a stack trace without throwing an Exception. However dumping the stack trace (with or without creating an Exception) has a huge performance cost and should really only be done at temporarily special circumstances.
    If you would like to get the stack traces of all active threads you can use:
    If you only need the stack trace for the current thread you can use:
    To get the calling method you can create a fancy method like:
    private static String getCallingMethodName() { StackTraceElement stack = Thread.currentThread().getStackTrace()[3]; return stack.getClassName() + "." + stack.getMethodName(); }

    Skrevet av Special Agent Squeaky. Først publisert 10.10.2010. Sist oppdatert 10.10.2010.

    📺 Se Squeaky sin nyeste video!

    Slik legger du til enkle sanntidsundertekster i direktesendingen din.