code: @Nullable
    public static String getterMethodToPropertyName(String methodName, List<Class<?>> parameterTypes, Class<?> returnType) {
      if (!parameterTypes.isEmpty()) return null;
      if (returnType == void.class) return null; // Void.class is allowed
  
      if (methodName.startsWith("get"))
        return getPropertyName(methodName, 3);
  
      if (methodName.startsWith("is")
          && returnType == boolean.class) // Boolean.class is not allowed
        return getPropertyName(methodName, 2);
  
      return null;
    }
docs: Checks if the given method is a getter method according
  to Groovy rules. If yes, the corresponding property name
  is returned. Otherwise, null is returned.
  This method differs from Groovy 1.6.8 in that the latter
  doesn't support the "is" prefix for static boolean properties;
  however, that seems more like a bug.
  See http://jira.codehaus.org/browse/GROOVY-4206