Sitelet https://javaevolved.dev/tr/tooling/stack-walker.html
Tooling Orta

StackWalker ile tembel çağrı yığını incelemesi

Tam bir yığın izini bellekte oluşturmadan, yığın çerçevelerini StackWalker ile tembel olarak inceleyin.

✕ Materialized stack trace
StackTraceElement caller = Thread.currentThread()
        .getStackTrace()[2];
String callerClass = caller.getClassName();
✓ Java 9+
String callerClass = StackWalker.getInstance()
        .walk(frames -> frames.skip(1)
                .findFirst()
                .orElseThrow()
                .getClassName());
Bu kodda bir sorun mu gördünüz? Bize bildirin.

Tembel dolaşım

Yalnızca işlemin gerektirdiği çerçeveleri ziyaret eder.

🧩

Stream uyumlu

Filtreleme ve seçim standart stream işlemlerini kullanır.

🎛

Yapılandırılabilir

Seçenekler sınıf referanslarını ve gizli ya da yansıtıcı çerçeveleri destekler.

Eski Yaklaşım
Thread.getStackTrace()
Modern Yaklaşım
StackWalker
JDK'dan itibaren
9
Zorluk
Orta
StackWalker ile tembel çağrı yığını incelemesi
Mevcut

JDK 9'dan (Eylül 2017) itibaren geniş çapta kullanılabilir

StackWalker, yığın çerçevelerinden oluşan tembel bir stream ve tutulan sınıf referanslarına yapılandırılabilir erişim sunar. Kod, çağrı yığını izinin tamamını içeren bir dizi ayırmak yerine gereken çerçeveyi bulduğunda durabilir.