String methodName = "set";
try {
// MyCollection.class.getMethod("add", int.class);
Method m = MyCollection.class.getDeclaredMethod(methodName, int.class, int.class);
MyCollection baseCollection = new MyCollection();
for (int i = 0; i < 10; i++)
baseCollection.add(i);
System.out.println(Arrays.toString(baseCollection.getData()));
System.out.println(m.invoke(baseCollection, 2, -100));
System.out.println(Arrays.toString(baseCollection.getData()));
System.out.println(m.invoke(baseCollection, 100, -100));
System.out.println(m.invoke(baseCollection, 0, -100));
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
System.out.println("Не найден метод " + methodName);
}