package org.jenkinsci.plugins.parameterizedschedular;
import java.lang.reflect.Field;
/**
* lets work around some final classes I couldn't subclass, but don't want to duplicate everything
*
* @author jameswilson
*
*/
public class FieldAccessor {
@SuppressWarnings("unchecked")
public <T> T access(Object instance, String fieldName) {
try {
Field field = instance.getClass().getDeclaredField(fieldName);
boolean isAccessible = field.isAccessible();
field.setAccessible(true);
Object value = field.get(instance);
field.setAccessible(isAccessible);
return (T)value;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}