Çalışma zamanında yürütülen yöntem adını bilmenin bir yolu olup olmadığını merak ediyordum? Örneğin, private void doSomething (String s)
yönteminin içinde, doSomething (String s)
yöntemini çalıştırdığımı bilmek isterim.Java'da bu yöntem içinden yöntem adı nasıl bulunur?
cevap
JDK1.5 olduğundan, stacktrace almak için bir özel durum gerekmez bakınız:
public class Test2 {
public static void main(String args[]) {
new Test2().doit();
}
public void doit() {
System.out.println(
Thread.currentThread().getStackTrace()[1].getMethodName()); // output : doit
}
}
Burada görmek güzel :) –
Yığın almak için istisna oluşturmak zorunda olmadığınız için bu daha iyi bir çözümdür. – rfeak
Bunun neden benim için çalışmadığından emin değilim ... Java 1.5 –
System.out.println(new Exception().getStackTrace()[0].getMethodName());
Ayrıca
sen Thread.currentThread().getStackTrace()
ile alabilirsiniz,
Method lastMethodCalled = this.getClass().getEnclosingMethod();
Bu onun için soruyordu yapmaz. Bkz [Bu link] (http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#getEnclosingMethod()) – job
- 1. PHP'de bir yöntem içinden bir yöntem adı alabilir misiniz?
- 2. Tür, yöntem içinden geçirildiğinde 'is' nasıl kullanılır?
- 3. java.lang.IllegalStateException: Yöntem [yöntem adı] yalnızca 1 yöntem alanı içerebilir. Bulunan: []
- 4. Get Yöntem Adı İşlemden
- 5. DoWorkEventHandler "yöntem adı bekleniyor"
- 6. ActiveRecord nesne özellik adı, yöntem adıyla aynı
- 7. Yöntem ve değişken adı aynı
- 8. Yöntem adı bilinen bir yöntemden nasıl alınır?
- 9. Java'da çalışma zamanında yöntem adı nasıl değiştirilir?
- 10. Salatalık javada senaryo adı nasıl alınır?
- 11. İşlem adı android paket adıyla aynı mıdır? Bu yöntem ile
- 12. Yöntem, satır içi yöntem
- 13. yöntem
- 14. $ http yöntem Bu kodu vardır
- 15. C++ yöntem adı şablon parametresi olarak
- 16. yöntem
- 17. Yöntem için Yöntem nesnesini nasıl alabilirim?
- 18. Derleyici içinde türü ve adı verilen bir yöntem nasıl aranır?
- 19. Yöntem yöntemini, yöntem yöntemini uygulayarak MethodInfo yöntemini nasıl edinebilirim?
- 20. Yöntem showMessage() nasıl kullanılır?
- 21. Kale Dinamik Proxy, sınıfın içinden çağrıldığında yöntem çağrılarını engellemiyor
- 22. İlkbahar Verisinde Yöntem Adı Sorgusunu Bahar Verisinde Nasıl Yazabilirim?
- 23. Ad alanı ve sınıf adıyla nasıl bir yöntem adı alabilirim?
- 24. Belirsiz yöntem nasıl aranır?
- 25. Bu yöntem neden bir dize döndürmüyor?
- 26. findViewById Statik Yöntem Bu statik yöntemine sahip
- 27. socket.FileSend Yöntem
- 28. Last.fm geo.getEvents döndürüyor Geçersiz Yöntem - Bu paketteki bu isimle bir yöntem yok
- 29. Süper yöntem nasıl aranır?
- 30. Yöntem çağrılarını nasıl bulurum?
Bu gerçekten kodunuzun gerektirmesi gereken bir şey değil. Tasarımınızı yeniden düşünmenizi öneririm, böylece ihtiyacınız olmaz. –
Eğer bu yöntemin içinde iseniz, zaten adını biliyorsunuz, değil mi? :) Arayanın yönteminin adını bilmek istiyorsanız, Jigar'ın cevabı sizin aradığınız cevaptır. Sadece index olarak 0 yerine 1 kullanın. Arama yöntemleri adını almak için –