public final VmMethod getMethod(String name, VmType[] argTypes) { return getMethod(name, argTypes, false);
final VmMethod getMethod(String name, String signature, boolean onlyThisClass, boolean searchInterfaces, int hashCode) {  final VmMethod[] mt = this.methodTable; if (mt != null) { final int count = mt.length; for (int i = 0; i < count; i++) { final VmMethod mts = mt[ i];  int mtsHashCode = mts.getMemberHashCode(); if (mtsHashCode == hashCode) { if (mts.nameEquals(name) && mts.signatureEquals(signature)) { return mts; } } else if (mtsHashCode > hashCode) {  break; } } }   if (isAbstract()) { final VmMethod method = getSyntheticAbstractMethod(name, signature, hashCode); if (method != null) { return method; } }   if ((superClass != null) && (!onlyThisClass)) { final VmMethod method = superClass.getMethod(name, signature, false, false, hashCode); if (method != null) { return method; } }   if (isInterface() || searchInterfaces) { final VmInterfaceClass[] ait = allInterfaceTable; if (ait != null) { final int count = ait.length; for (int i = 0; i < count; i++) { final VmInterfaceClass intf = ait[ i]; final VmMethod method = intf.getMethod(name, signature, true, false, hashCode); if (method != null) { return method; } } } }   return null;
    public final VmMethod getMethod(String name, VmType[] argTypes) {        return getMethod(name, argTypes, false);    }