Sponsor Reklam 


19.09.2009 (08:05)

 Java'da Reflection Kullanımı 
Java sınıfların, metotların, metotların aldıkları değer tiplerinin isimlerini çalışma zamanında (runtime) alabilmemizi sağlamaktadır. Bunun için reflect paketi import edilir. Bu işlemlere reflection denir.

Peki java reflection ne işe yarar?
Yansıtma kütüphanesine geliştirme araçları yazarken ihtiyaç duyabiliriz. Çalışma zamanında bize string olarak gelen bir değerin sınıf olarak düşünülüp nesnesinin üretilmesi gerekebilir. İşte derleme (compile) sırasında değil de çalışma (runtime) sırasında sınıf(lar)ın nesnesinin üretilmesine, onların metotlarına, tiplerine, paketlerine erişmeye yansıtma diyoruz.

Eğer derleyici yazalım dersek girilen text kodun ayrıştırılıp (parse) yazım incelemesi (syntax) yapıldıktan sonra, kodun içinde geçen nesnelerin üretilmesi ve metotların çağrılması için böyle bir mekanizmaya ihtiyaç duyarız.

Örnek bir koda bakalım:
package kodcu.net;

import java.lang.reflect.*;

public class Main {

  public static void main(String[] args) {

    // Select a class
    class.kodcu.net/" class="linked" target="_blank">Class cls = String.class;
   
    // Get methods of the class
    Method[] methodList = cls.getDeclaredMethods();

    for (int i = 0; i < methodList.length; i++) {
      Method m = methodList[i];
      System.out.println("Method Name: " + m.getName());
     
      class.kodcu.net/" class="linked" target="_blank">Class[] parameterTypes = m.getParameterTypes();
      for (int j = 0; j < parameterTypes.length; j++) {
        System.out.println("  Parameter Type: " + parameterTypes[j].getName());
      }
     
      System.out.println();
    }
   
  }

}

Imza: admin








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter