Необходимо запустить скрипт на ec2, если задача ecs перезапускается

Если метод принимает не-примитивный тип данных, то для вызова частного метода любого класса можно использовать следующий метод:

public static Object genericInvokMethod(Object obj, String methodName,
            int paramCount, Object... params) {
        Method method;
        Object requiredObj = null;
        Object[] parameters = new Object[paramCount];
        Class<?>[] classArray = new Class<?>[paramCount];
        for (int i = 0; i < paramCount; i++) {
            parameters[i] = params[i];
            classArray[i] = params[i].getClass();
        }
        try {
            method = obj.getClass().getDeclaredMethod(methodName, classArray);
            method.setAccessible(true);
            requiredObj = method.invoke(obj, params);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

        return requiredObj;
    }

Принятые параметры: obj, methodName, количество параметров принятых и параметров. Например,

public class Test {
private String concatString(String a, String b) {
    return (a+b);
}
}

Метод concatString может быть вызван как

Test t = new Test();
    String str = (String) genericInvokMethod(t, "concatString", 2, "Hello", "Mr.x");
0
задан user1140596 7 March 2019 в 15:08
поделиться