Android меняет закрытое статическое конечное поле с помощью Java Reflection?

Хочу установитьno_cache» быть новым значением. Вот мой код:

static void setFinalStatic(Object newValue) throws Exception
{
    Field field = CacheManager.class.getDeclaredField("NO_CACHE");
    field.setAccessible(true);
    Field modifiersField=Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);
    modifiersField.setInt(field,field.getModifiers() & ~Modifier.FINAL);
    field.set(null, newValue);
}

Но запуск этого кода на Android приводит к следующей ошибке:

java.lang.NoSuchFieldException: modifiers

я нахожуmodifiers это поле вField класс в Java, но это не поле вField класс на андроид.

Это яваField код класса:

http://www.docjar.com/html/api/java/lang/reflect/Field.java.html

Это андроидField код класса:

http://www.oschina.net/code/explore/android-2.2-froyo/java/lang/reflect/Field.java

Приведенный выше код на Java может работать, но он не работает на платформе Android.

Как это исправить?

Ответы на вопрос(2)

Ваш ответ на вопрос