@SuppressWarnings("unchecked")
    public static <T> T invoke(Object obj, String methodName, Object... arguments) {
        try {
            Method method = ReflectUtil.getMethodByName(obj.getClass(), methodName);
            if (method == null) {
                throw new RuntimeException(methodName + "method not exists");
            }
            ReflectUtil.setAccessible(method);
            return (T) method.invoke(obj, arguments);
        } catch (IllegalAccessException | InvocationTargetException e) {
            throw new RuntimeException(e);
        }
    }
@Test
    public void invokeTest() {
        TestClass testClass = new TestClass();
        Method method = ReflectUtil.getMethodByName(TestClass.class, "getPrivateField");
        String invoke = ReflectUtil.invoke(testClass, method);
        Assert.assertEquals(invoke, "privateField");
    }