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

  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011
  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008