Giriş
Şu satırı dahil ederiz.
getAllFields metodu
Ata sınıflar da dahil tüm public/private tüm field'ları array şeklinde döner.
getAllFieldsList metodu
Ata sınıflar da dahil tüm public/private tüm field'ları List şeklinde döner.
getDeclaredField
Sadece belirtilen sınıf içinde field araması yapar.
getField metodu
Ata sınıflar da dahil field araması yapar. Şöyle yaparız.
writeStaticField metodu
Sınıfın kendi içinde veya atasından tanımlı static alana değer atamak içindir. Örnek ver
writeField metodu
İmzası şöyle.
Elimizde şöyle bir kod olsun
Şu satırı dahil ederiz.
import org.apache.commons.lang3.reflect.FieldUtils;
Bu sınıf target olarak hem Object hem de Class alabiliyor. Bu sınıfın en kötü tarafı verilen parametre ile Field tipinin aynı olması gerekmesi. Örneğin parametre string ve field integer ise ikisi arasında otomatik dönüşüm yapmıyor.getAllFields metodu
Ata sınıflar da dahil tüm public/private tüm field'ları array şeklinde döner.
getAllFieldsList metodu
Ata sınıflar da dahil tüm public/private tüm field'ları List şeklinde döner.
getDeclaredField
Sadece belirtilen sınıf içinde field araması yapar.
getField metodu
Ata sınıflar da dahil field araması yapar. Şöyle yaparız.
Object object = ...;
Field field = FieldUtils.getField(object.getClass(), "count", true);
getFieldsWithAnnotation metodu
Ata sınıflar da dahil belirtilen anotasyona sahip public/private tüm field'ları array şeklinde döner.
getFieldsListWithAnnotation metodu
Ata sınıflar da dahil belirtilen anotasyona sahip public/private tüm field'ları liste şeklinde döner.
readField
Şöyle yaparız.
Şöyle yaparız.
Sınıfın kendi içinde tanımlı static alana değer atamak içindir. Örnek verAta sınıflar da dahil belirtilen anotasyona sahip public/private tüm field'ları array şeklinde döner.
getFieldsListWithAnnotation metodu
Ata sınıflar da dahil belirtilen anotasyona sahip public/private tüm field'ları liste şeklinde döner.
readField
Şöyle yaparız.
Object value = FieldUtils.readField(entity, fieldName, true);
writeDeclaredField metoduŞöyle yaparız.
FieldUtils.writeDeclaredField(object, "fieldName", "fieldValue");
writeDeclaredStaticField metoduSınıfın kendi içinde veya atasından tanımlı static alana değer atamak içindir. Örnek ver
writeField metodu
İmzası şöyle.
FieldUtils.writeField(Object target, String fieldName, Object value, boolean forceAccess)
ÖrnekElimizde şöyle bir kod olsun
public static class Bookstore {
private PaymentService paymentService;
...
}
Şöyle yaparız.Bookstore bookstore = new Bookstore();
//Just one line to inject the field via reflection
FieldUtils.writeField(bookstore, "paymentService",new Paypal(), true);
Hiç yorum yok:
Yorum Gönder