「NO_CACHE」をnewValueに設定したい。これが私のコードです:
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
Javaのクラスのフィールドですが、 AndroidField
のクラスのフィールドではありません。Field
これは JavaField
クラス コードです。
http://www.docjar.com/html/api/java/lang/reflect/Field.java.html
これは AndroidField
クラス コードです。
http://www.oschina.net/code/explore/android-2.2-froyo/java/lang/reflect/Field.java
上記の Java のコードは機能しますが、Android プラットフォームでは機能しません。
これを修正するにはどうすればよいですか?