Android开发学习笔记之反射技术
2015-04-18 09:44
309 查看
JAVA反射机制定义:
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
获取相应的类对象名称
Class<?> classType = Class.forName("com.terry.operationClass");
如果知道类名并且类名存在于我们工程中,即jar 文件中包含可以使用如下写法
Class<?> classType = operationClass.class;
返回本类对象
Object invokeOperation = classType.newInstance();
根据类对象名称去查找对应的方法
Method addMethod = classType.getMethod("add", new Class[] {
int.class, int.class });
参数一:代码需要查找类名的方法,参数二:指定查找方法的参数类型
调用查找 到的方法执行此方法的处理
Object result = addMethod.invoke(invokeOperation, new Object[] {
new Integer(first), new Integer(second) });
用途
1.通过反射技术可以访问到其他包名下数据方法等,这些为一些APK换皮肤提供了方便
2. 访问android 隐藏的API
Toast信息框的关闭是由系统管理的,因为hide方法是隐藏的开发者没有办法直接调用,这种情况下可以用发射机制获取这个方法,创建一个显示和隐藏都由开发者控制的Toast信息框。
显示toast:
?
隐藏toast:
toast.hide();
注意在4.0以上的版本中,还需要对Toast 中的View进行处理,如代码中所示
3. 修改某些“不可改” 的系统资源
ListView组件没有提供修改快速滑块图像的API,因此不能直接修改,但可通过反射实现
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
获取相应的类对象名称
Class<?> classType = Class.forName("com.terry.operationClass");
如果知道类名并且类名存在于我们工程中,即jar 文件中包含可以使用如下写法
Class<?> classType = operationClass.class;
返回本类对象
Object invokeOperation = classType.newInstance();
根据类对象名称去查找对应的方法
Method addMethod = classType.getMethod("add", new Class[] {
int.class, int.class });
参数一:代码需要查找类名的方法,参数二:指定查找方法的参数类型
调用查找 到的方法执行此方法的处理
Object result = addMethod.invoke(invokeOperation, new Object[] {
new Integer(first), new Integer(second) });
用途
1.通过反射技术可以访问到其他包名下数据方法等,这些为一些APK换皮肤提供了方便
2. 访问android 隐藏的API
Toast信息框的关闭是由系统管理的,因为hide方法是隐藏的开发者没有办法直接调用,这种情况下可以用发射机制获取这个方法,创建一个显示和隐藏都由开发者控制的Toast信息框。
?
toast.hide();
注意在4.0以上的版本中,还需要对Toast 中的View进行处理,如代码中所示
3. 修改某些“不可改” 的系统资源
ListView组件没有提供修改快速滑块图像的API,因此不能直接修改,但可通过反射实现
相关文章推荐
- Android开发学习笔记之通过反射技术修改listview的快速滑块图像
- Android开发学习笔记(13):Android开发常用技术点整理(更新中...)
- 工作学习笔记——Alljoyn技术、初试Android开发
- android 学习笔记之开源开发技术和框架
- android 开发零起步学习笔记(八):android studio 中代码上画横线代表什么意思
- android 开发零起步学习笔记(九):android 控制控件的位置和大小及Layout相关属性
- android 开发零起步学习笔记(十):UI控件动态加载机制浅析
- android 开发零起步学习笔记(十一):界面切换+几种常用界面切换效果
- android 开发零起步学习笔记(十二):android监听事件添加动作的三种方式
- android 开发零起步学习笔记(十三):Android 实现多页界面左右滑动切换效果
- python开发技术详解的学习笔记
- Android开发艺术探索学习笔记
- android 开发零起步学习笔记(十五):android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- Android开发学习笔记:浅谈WebView
- Android开发学习笔记:Android很有用的代码片段
- android 开发零起步学习笔记(十六):Android命名规范
- android 开发零起步学习笔记(十七):自定义android用户控件,使用回调函数实现自定义事件
- android 开发零起步学习笔记(十八):Android Layout 布局属性全解
- android 开发零起步学习笔记(十九):android使用全局变量的两种方法
- Android开发学习笔记:浅谈显示Intent和隐式Intent