[Java] Pobieranie wartości pola na podstawie nazwy

Pobieranie wartości pola klasy lub obiektu (egzemplarza klasy) z wykorzystaniem mechanizmu refleksji

import java.lang.reflect.Field;

/**
 * @author Jarek Przygódzki
 */
public class FieldUtils {

	@SuppressWarnings("unchecked")
	public static <T> T getFieldValue(Class<?> cls, String fieldName, T defaultValue) {
		T retValue = defaultValue;
		try {
			Field field = cls.getField(fieldName);
			field.setAccessible(true);
			retValue = (T) field.get(null);
		} catch (SecurityException ignore) {
		} catch (NoSuchFieldException ignore) {
		} catch (IllegalArgumentException ignore) {
		} catch (IllegalAccessException ignore) {
		}
		return retValue;
	}

	@SuppressWarnings("unchecked")
	public static <T> T getFieldValue(Object obj, String fieldName, T defaultValue) {
		T retValue = defaultValue;
		Class<?> cls = obj.getClass();
		try {
			Field field = cls.getField(fieldName);
			field.setAccessible(true);
			retValue = (T) field.get(obj);
		} catch (SecurityException ignore) {
		} catch (NoSuchFieldException ignore) {
		} catch (IllegalArgumentException ignore) {
		} catch (IllegalAccessException ignore) {
		}
		return retValue;
	}
}

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s