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

  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009
  • LAHWF

    LAHWF

    5 Kasım 2009
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009