code: public static void setField(
  		final Object target,
  		final String name,
  		final Object value
  	) {
  		final Field field = findField(target.getClass(), name)
  			.orElseThrow(() -> new IllegalArgumentException(name + " not found."));
  
  		try {
  			field.setAccessible(true);
  			field.set(target, value);
  		} catch (IllegalAccessException e) {
  			throw new IllegalArgumentException(e);
  		}
  	}
docs: Reflectively sets the field with the given {@code name} to the new
  {@code value}. The new value is set to the first found field in the
  whole class hierarchy.
  
  @since 3.7
  
  @param target the object which owns the field
  @param name the field name
  @param value the new field value
  @throws IllegalArgumentException if no field with the given {@code name}
  can be found or it's not allowed to set the field