Измените личное статическое конечное поле с использованием отражения Java
Я выполнил инструкции в приведенной выше ссылке, чтобы изменить приватное статическое конечное поле, используя java-отражение. У меня есть объект с именем "data". Внутри "данных" есть частная статическая конечная переменная с именем "type". Я хочу установить "тип" равным нулю. Вот мой код.
Field field = data.getClass().getDeclaredField("type");
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(data, null);
Я попытался сделать это на Java 1.7 с похожим кодом, и он сработал. Но запуск этого кода на Android вызывает следующую ошибку: java.lang.NoSuchFieldException: модификаторы
Я думаю, что "модификаторы" не являются полем в классе Field на Android.
Как это исправить?