SORU
14 Ocak 2009, ÇARŞAMBA


Geçerli yürütme yöntemi adı alma

Bir şekilde Java şu anda yürütülen bir yöntemin adı almak için var mı?

CEVAP
5 Mayıs 2011, PERŞEMBE


Teknik olarak bu bir iş

String name = new Object(){}.getClass().getEnclosingMethod().getName();

Ancak, yeni bir anonim iç sınıf derleme zamanı (örneğin YourClass$1.class) sırasında oluşturulur. Bu hile dağıtır her yöntem için .class dosyası oluşturur. Aksi takdirde kullanılmayan nesne ayrıca bir örnek çalışma zamanı sırasında her çağırma oluşturulur. Bu kabul edilebilir hata ayıklama bir numara olabilir, ama önemli ek yük ile geliyor.

Bu hileyi bir avantajı getEncosingMethod() yöntemi tüm diğer bilgileri almak için ek açıklamalar ve parametre adları da dahil olmak üzere kullanılabilir java.lang.reflect.Method verir. Bu sayede aynı adı taşıyan özel yöntemler (aşırı yüklenme yöntemi) arasında ayrım yapar.

Aynı sınıf yükleyicisi kullanarak getEnclosingMethod() JavaDoc göre bu hile iç sınıflar yüklenmesi gibi SecurityException atmak gerektiğini unutmayın. Eğer bir güvenlik yöneticisi varsa bile giriş koşulları kontrol etmek için ihtiyaç vardır.

Kurucular getEnclosingConstructor() kullanmak için gereklidir. (Adlı) yöntemleri dışında bloklar, getEnclosingMethod() sırasında döndürür null.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • B4ROK

    B4ROK

    1 EKİM 2008
  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • The Platform

    The Platform

    14 HAZİRAN 2006