public static Method getMethod(Class objectClass, Method signature) {
        if (objectClass == null
                || objectClass == Object.class
                || objectClass == Serializable.class
        ) {
            return null;
        }

        Method[] methods = methodCache.get(objectClass);
        if (methods == null) {
            methods = getMethods(objectClass);
            methodCache.putIfAbsent(objectClass, methods);
        }

        for (Method method : methods) {
            if (!method.getName().equals(signature.getName())) {
                continue;
            }
            if (method.getParameterCount() != signature.getParameterCount()) {
                continue;
            }
            Class<?>[] parameterTypes0 = method.getParameterTypes();
            Class<?>[] parameterTypes1 = signature.getParameterTypes();
            boolean paramMatch = true;
            for (int i = 0; i < parameterTypes0.length; i++) {
                if (!parameterTypes0[i].equals(parameterTypes1[i])) {
                    paramMatch = false;
                    break;
                }
            }
            if (paramMatch) {
                return method;
            }
        }

        return null;
    }
@author Bob Lee
@author Jesse Wilson
@author Shaojin Wen
@author poo0054
core/src/main/java/com/alibaba/fastjson2/util/BeanUtils.java