我想将“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
是Field
Java 类中的一个字段,但它不是Field
Android 类中的一个字段。
这是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平台上不行。
我该如何解决?