您的位置:首页 > 移动开发 > Android开发

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,因此不能直接修改,但可通过反射实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐