public static Method locateMethodObjectOnClass(String methodName, Class<?> containingClass,
			Class<?>[] parameterTypes) {
		Method method = null;

		try {
			// if we get an exception here, then the current class does not
			// declare the method, but its parent may
			method = containingClass.getDeclaredMethod(methodName, parameterTypes);
		}
		catch (NoSuchMethodException nsme) {
			// O.K., the method may be located on a parent class.  So, we
			// will call this method on the parent class
			Class<?> parentClass = containingClass.getSuperclass();

			if (parentClass != null) {
				method = locateMethodObjectOnClass(methodName, parentClass, parameterTypes);
			}
		}

		return method;
	}
Locates the method of the name <code>methodName</code> on the given
class.  If the given class does not contain the method, then this
method will recursively call up <code>containingClass</code>'s
implementation tree looking for a parent implementation of the
requested method.

@param methodName The name of the method to locate.
@param containingClass The class that contains the desired method.
@param parameterTypes The parameters of the desired method (may be null).
@return The Method object that matches the given name, or null if not
        suitable method could be found.
Ghidra/Framework/Utility/src/main/java/utilities/util/reflection/ReflectionUtilities.java