private static Reflector with(Method method, Object object, Object... args) throws ReflectException {
        try {
            accessible(method);

            if (method.getReturnType() == void.class) {
                method.invoke(object, args);
                return with(object);
            } else {
                return with(method.invoke(object, args));
            }
        } catch (Exception e) {
            throw new ReflectException(e);
        }
    }
match two methods

@param declaredTypes declared method types
@param actualTypes   actual method types
@return is match
caprice/kit-reflect/src/main/java/net/qiujuer/genius/kit/reflect/Reflector.java