public static Object callStaticMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes, Object... args) {
        try {
            return findMethodBestMatch(clazz, methodName, parameterTypes, args).invoke(null, args);
        } catch (IllegalAccessException e) {
            // should not happen
            XposedBridge.log(e);
            throw new IllegalAccessError(e.getMessage());
        } catch (IllegalArgumentException e) {
            throw e;
        } catch (InvocationTargetException e) {
            throw new InvocationTargetError(e.getCause());
        }
    }
Calls a static method of the given class.
See {@link #callStaticMethod(Class, String, Object...)}.

<p>This variant allows you to specify parameter types, which can help in case there are multiple
methods with the same name, especially if you call it with {@code null} parameters.
android/android_framework/base/src/main/java/util/XposedHelpers.java