Я новичок в Java и имею задачу написать какое-то приложение. Столкнулся с одной проблемой, которая не может пройти: (
Проблема заключается в обновлении элемента массива путем отражения (приложение выбирает публичный массив для динамического обновления в зависимости от чтения строки приложения из файла):
Сначала я отразил логические переменные следующим образом:
activity = activityName(activities[i].substring(0,activities[i].lastIndexOf('.', activities[i].length() - 4)));
Field field = refClass.getField(activity);
Object obj = field;
field.setBoolean(obj, true);
И это хорошо сработало для меня. Но теперь мне нужно использовать массивы вместо обычных переменных, и я попытался сделать следующее:
activity = activityName(activities[i].substring(0, activities[i].lastIndexOf('.', activities[i].length() - 4)));
Field field = refClass.getField(activity);
Object field_act = field;
field_act.setBoolean(field_act, LMKStorage.currentLmkSlot, true);
И получаю исключение "Аргумент не массив". (
В field_act.setBoolean(field_act, LMKStorage.currentLmkSlot, true);
, field_act
- логическое значение [], которое я получаю с помощью .getField(activity)
, LMKStorage.currentLmkSlot
- это int, чтобы определить, какую позицию массива установить, а "true" - значение, которое нужно установить. Field_act, который я должен получить на 100% - это массив, потому что в refClass у меня нет статических переменных, не являющихся массивами.
Пока у меня есть учебники, но у меня все еще ничего. Пробовал гуглить любые примеры, чтобы обновить элементы массива ... для меня ничего не помогло.
Пожалуйста, совет.