public static void Invoke
public void Invoke
  public static void Invoke    (Object object, String method, Object args[], long result)  {    try {      Vector matches = new Vector();      // gather      for (Class jclass = object.getClass();;jclass=(Class)object) {        while (!Modifier.isPublic(jclass.getModifiers())) {          // OK, some joker gave us an instance of a non-public class          // This often occurs in the case of enumerators          // Substitute the first public interface in its place,          // and barring that, try the superclass          Class interfaces[] = jclass.getInterfaces();          jclass=jclass.getSuperclass();          for (int i=interfaces.length; i-->0;) {            if (Modifier.isPublic(interfaces[i].getModifiers())) {              jclass=interfaces[i];            }          }        }        Method methods[] = jclass.getMethods();        for (int i=0; i<methods.length; i++) {          if (methods[i].getName().equalsIgnoreCase(method) &&              methods[i].getParameterTypes().length == args.length) {            matches.addElement(methods[i]);          }        }        // try a second time with the object itself, if it is of type Class        if (!(object instanceof Class) || (jclass==object)) break;      }      Method selected = (Method)select(matches, args);      if (selected == null) throw new NoSuchMethodException(method);      Object coercedArgs[] = coerce(selected.getParameterTypes(), args);      setResult(result, selected.invoke(object, coercedArgs));    } catch (Exception e) {      setException(result, e);    }  }