code: private static boolean isMatching(Method base, Method compare) {
  
  		// if names and argument types match ... then this are the same method
  		if (base.getName().equals(compare.getName()) &&
  		    base.getParameterCount() == compare.getParameterCount()) {
  
  			Class<?>[] typeBase = base.getParameterTypes();
  			Class<?>[] typeCompare = compare.getParameterTypes();
  
  			for (int index = 0; index < typeBase.length; index++) {
  				Class clazzBase = typeBase[index];
  				Class clazzCompare = typeCompare[index];
  				if (!clazzBase.equals(clazzCompare)) {
  					return false;
  				}
  			}
  
  			return true;
  		}
  
  		return false;
  	}
docs: Checks if methods in base and inherited/abstract class are the same method
  @param base method
  @param compare to compare
  @return true if the same, false otherwise