Professionel internetafhængig • Spilentusiast • Teknologiskaber
Professionel internetafhængig • Spilentusiast • Teknologiskaber

Sådan finder man den kaldende metode i Java

Sådan får du kalderen af en Java-metode!
Denne side er blevet oversat fra engelsk af mine meget motiverede AI-praktikanter for at gøre det nemmere for dig. De er stadig i gang med at lære, så der kan være sluppet et par fejl igennem. For den mest præcise information, se venligst den engelske version.
Hjem Blog Sådan finder man den kaldende metode i Java

Bemærk venligst, at dette blogindlæg blev udgivet i oktober 2010, så afhængigt af hvornår du læser det, kan visse dele være forældede. Desværre kan jeg ikke altid holde disse indlæg fuldt opdaterede for at sikre, at oplysningerne forbliver nøjagtige.

    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 af Special Agent Squeaky. Først udgivet 10-10-2010. Sidst opdateret 10-10-2010.

    📺 Se Squeaky's seneste video!

    Sådan tilføjer du enkle undertekster i realtid til din livestream