在Android中使用反射获取并修改private static final成员
2015-12-12 22:21
645 查看
import android.app.Instrumentation; import android.test.InstrumentationTestCase; import android.util.Log; import java.lang.reflect.Field; import java.lang.reflect.Modifier; /** * Created by mark_chen on 2015/12/11. * 1.使用了AndroidStudio自带的单元测试功能 * a)在(androidTest)包中创建类 * b)继承InstrumentationTestCase * c)创建以test开头的方法 * d)右击本类可以直接运行 * * 2.使用反射获取并修改某个类的私有静态终态(private static final)非基本类型的成员变量 * ,获取某个成员的类型和修饰符 * a) 使用a.getClass().getDeclaredField("属性名")获取A类的Field对象 * b) field.setAccessible(true)设置feild可访问 * c) 使用feild.set()方法修改某个成员 * d) 使用Modifier.toString(feild.getModifiers())获取feild的Modifies对象 * */ public class TestClass extends InstrumentationTestCase { public void test() { Log.e("test","Android单元测试"); A a = new A(); Field field = null; try { field = a.getClass().getDeclaredField("a"); field.setAccessible(true); field.set(a, 2); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } Log.e("test",a.getA()+""); Log.e("test", Modifier.toString(field.getModifiers())); } }
相关文章推荐
- 喝酒不骑马的Android自学日记(4)-简易计算器的实现
- android 多击事件
- 使用AndroidStudio进行Android单元测试
- Android搜索栏遇到的问题记录
- Android 监听音量加减
- android - Searchable Configuration
- Android Studio运行时出现多个项目
- 野人学Android第二弹——AutoCompleteTextView自动搜索数据库
- android轮询最佳实践service+AlarmManager+Thread
- 使用Dialog实现全局Loading加载框
- [Android]修改Bitmap的Config格式设置及其Config参数源码阅读
- 非常简单的android广播示例
- Android手机出现"已安装了存在签名冲突的同名数据包"的原因及解决办法
- 无法创建AVD_20151212
- Android之拨打电话
- Android调用照相机拍照
- Android SDK 更新镜像服务器
- android - Adding Custom Suggestions
- Android之NDK开发
- 阅读混淆过的Android代码的确不易