Java servletleri ve jsp ile çalışırken eğer büyük bir formunuz var ve bu formun alanları bir nesneye denk geliyorsa, gelen parametreleri tek tek okuyup nesneye aktarmak tam bir işkencedir çünkü nesnenin 20 tane alanı var ise alt alta 20 tane request.getParameter işlemi yapmak gerekir.
Bazı frameworkler bu işleri otomatize edip parametrelerden gelen bu değerleri otomatik olarak nesneye dönüştürüyorlar ama bazı durumlarda framework kullanmamanız gerekiyor (örn : hız kaygılarının olduğu projelerde) ya da framework kullanmak istemiyorsunuzdur. İşte böyle durumlarda yukarıda anlattığım sorun ile karşılaşma ihtimaliniz yüksektir.
Bu sorunu frameworklerin yaptığı gibi otomatize etmek ama bunu yaparken framework kullanmamak için Java Reflection apilerini kullanarak bir sınıf oluşturdum. Bu sınıf ile parametreden gelen bir nesneyi aşağıdaki gibi 2 satırda oluşturabiliyorsunuz, nesnenin ne kadar alanı olursa olsun !
ObjectBuilder builder = new ObjectBuilder();
HedefNesne ocmsuniversitiesSponsor = (HedefNesne)builder.parametersToObject(request, HedefNesne.class);
Yukarıdaki örnekteki gibi yapmanız gereken 2 şey var birincisi ObjectBuilder (ismini böyle seçtim ama siz kodu oynarak istediğiniz bir isim verebilirsiniz) nesnesini oluşturmak ve ObjectBuilder’in parametersToObject fonksiyonuna request ve hedef nesnenin class’ını aktarmak.
ObjectBuilder sınıfını indirmek için tıklayınız
Kategorisi: Java | Etiketlendi: Java, reflection
