code: public void setValue(Object obj, T value) throws IllegalAccessException, InvocationTargetException {
  		if (field == null) {
  			setMethod.invoke(obj, value);
  		} else {
  			field.set(obj, value);
  		}
  	}
docs: Set the value associated with this field from the object parameter either by setting via the field or calling the
  set method.