首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android:使用java反射更改私有静态final字段

Android:使用java反射更改私有静态final字段
EN

Stack Overflow用户
提问于 2012-06-25 15:58:25
回答 1查看 6.1K关注 0票数 19

Change private static final field using Java reflection

我按照上面链接中的说明使用java反射更改了一个私有的static final字段。我有一个名为“data”的对象。在"data“中,有一个名为”type“的私有静态最终变量。我想将"type“设置为null。这是我的代码。

代码语言:javascript
复制
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);

我试着用类似的代码在Java1.7上做这件事,它起作用了。但是在Android上运行这段代码会产生以下错误:java.lang.NoSuchFieldException:修饰符

我猜“修饰符”不是Android的field类中的一个字段。

我该如何解决这个问题?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11185453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档