public static <T> Method getMethodInternal(Class<? extends T> udfClass,
      String methodName, boolean exact, List<TypeInfo> argumentClasses)
      throws UDFArgumentException {

    List<Method> mlist = new ArrayList<Method>();

    for (Method m : udfClass.getMethods()) {
      if (m.getName().equals(methodName)) {
        mlist.add(m);
      }
    }

    return getMethodInternal(udfClass, mlist, exact, argumentClasses);
  }
This method is shared between UDFRegistry and UDAFRegistry. methodName will
be "evaluate" for UDFRegistry, and "aggregate"/"evaluate"/"evaluatePartial"
for UDAFRegistry.
@throws UDFArgumentException
udf/src/java/org/apache/hadoop/hive/ql/exec/MethodUtils.java