code: public static Object runGetter(Object object, Field field) throws IllegalAccessException, IllegalArgumentException,
            InvocationTargetException
    {
      final Class<?> clazz = object.getClass();
      final String fieldName = field.getName();
  
      Map<String, Method> fieldMethodMap = METHOD_FIELD_MAP_CACHE.get(object.getClass().getCanonicalName());
      if (fieldMethodMap != null)
      {
        final Method fieldMethod = fieldMethodMap.get(fieldName);
        if (fieldMethod != null)
        {
          return fieldMethod.invoke(object);
        }
      }
      else
      {
        fieldMethodMap = new HashMap<>();
      }
  
      try
      {
        final Method method = clazz.getMethod(JStringUtils.GET + JStringUtils.upperCaseFirst(fieldName), null);
        fieldMethodMap.put(fieldName, method);
        METHOD_FIELD_MAP_CACHE.put(object.getClass().getCanonicalName(), fieldMethodMap);
  
        return method.invoke(object);
      }
      catch (Exception e)
      {
        // Swallow exception so that we loop through the rest.
      }
  
      for (Method method : clazz.getMethods())
      {
        final String methodName = method.getName();
        if (((methodName.startsWith(JStringUtils.GET)) && (methodName.length() == (fieldName.length() + JStringUtils.GET.length())))
                || ((methodName.startsWith(JStringUtils.IS)) && (methodName.length() == (fieldName.length() + JStringUtils.IS.length()))))
        {
          if (methodName.toLowerCase().endsWith(fieldName.toLowerCase()))
          {
            fieldMethodMap.put(fieldName, method);
            METHOD_FIELD_MAP_CACHE.put(object.getClass().getCanonicalName(), fieldMethodMap);
  
            return method.invoke(object);
          }
        }
      }
  
      return null;
    }
docs: Execute a "getter" on the provided <i>object</i> for the given <i>field</i>.
  
  @param object - The object to run the "getter" on
  @param field - The Field to retrieve data from
  @return Object - The value of the "getter"
  @throws IllegalAccessException
  @throws IllegalArgumentException
  @throws InvocationTargetException