code: protected Member findMostSpecificMemberIn (List<Member> memberList)
          throws NoSuchMethodException
      {
          List<Member> mostSpecificMembers = new ArrayList<Member>();
  
          for (Member member : memberList) {
              if (mostSpecificMembers.isEmpty()) {
                  // First guy in is the most specific so far.
                  mostSpecificMembers.add(member);
  
              } else {
                  boolean moreSpecific = true;
                  boolean lessSpecific = false;
  
                  // Is member more specific than everyone in the most-specific set?
                  for (Member moreSpecificMember : mostSpecificMembers) {
                      if (!memberIsMoreSpecific(member, moreSpecificMember)) {
                          // if the candidate member is not more specific than this member, then it's
                          // not more specific than the entire set, but it may still be equivalently
                          // specific, so we check that next
                          moreSpecific = false;
  
                          // we check for a member of equal specificity by checking to see if this
                          // most specific member is explicitly more specific than the candidate
                          // member. if it is more specific, the candidate member can be chucked,
                          // otherwise we need to add the candidate member to the most-specific set
                          lessSpecific = memberIsMoreSpecific(moreSpecificMember, member);
                          break;
                      }
                  }
  
                  if (moreSpecific) {
                      // Member is the most specific now.
                      mostSpecificMembers.clear();
                      mostSpecificMembers.add(member);
  
                  } else if (!lessSpecific) {
                      // Add to ambiguity set if mutually unspecific.
                      mostSpecificMembers.add(member);
                  }
              }
          }
  
          if (mostSpecificMembers.size() > 1) {
              throw new NoSuchMethodException(
                  "Ambiguous request for member in " + _clazz.getName() + " matching given args" );
          }
  
          return mostSpecificMembers.get(0);
      }
docs: @param memberList a list of members (either all constructors or all methods).
  
  @return the most specific of all members in the list.
  
  @exception NoSuchMethodException if there is an ambiguity as to which is most specific.