code: @SuppressWarnings("unchecked")
    public static <T> T getValue(Class<?> type, String fieldName, Class<T> fieldType) {
      try {
        return getValue(null, getField(type, fieldName), fieldType);
      }
      catch (FieldNotFoundException e) {
        throw new IllegalArgumentException(String.format("Field with name (%1$s) does not exist on class type (%2$s)!",
          fieldName, type.getName()), e);
      }
    }
docs: Gets the value of the field with the specified name on the given class type cast to the desired field type.
  This method assumes the field is a static (class) member field.
  
  @param <T> the desired return type in which the field's value will be cast; should be compatible with
  the field's declared type.
  @param type the Class type on which the field is declared and defined.
  @param fieldName a String indicating the name of the field from which to get the value.
  @param fieldType the declared type of the class field.
  @return the value of the specified field on the given class type cast to the desired type.
  @throws IllegalArgumentException if the given class type does not declare a static member field
  with the specified name.
  @throws FieldAccessException if the value for the specified field could not be retrieved.
  @see #getField(Class, String)
  @see #getValue(Object, java.lang.reflect.Field, Class)