Это работает:)
Я использую это, чтобы создать переменное число «сложенных» циклов (цикл внутри цикла внутри цикла).
Существует статический метод, которому вы передаете начальный индекс, предел, Object для вызова методов и, наконец, массив методов и массив аргументов.
РЕДАКТИРОВАТЬ: Грубый код - мне потребовалось 3 минуты, чтобы написать, так что, вероятно, там скрывается что-то очень плохое, но общая идея очевидна.
public static void loop(int start, int lessThan, Object obj, Method[] methods, Object[] args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
lastLoop++;
for(int i = start; i < lessThan; i++) {
for(int j = 0; j < methods.length; j++) {
methods[j].invoke(obj, args[j]);
}
}
}
Если вам интересно, для чего я все это использую - я просто разыскиваю способ делать перестановки, где количество элементов меньше количества позиций. Я столкнулся с проблемами, пытаясь определить переменное количество циклов (которое зависит от количества позиций), поэтому решил обойти это с помощью этого.