反射父类方法
来源:互联网 发布:11年体测数据 编辑:程序博客网 时间:2024/06/07 12:27
/** * scroll Vertical */ public void scrollVertical(final ListView listView, Activity activity, final int distance) { if (listView == null) return; activity.runOnUiThread(new Runnable() { //执行自动化测试的时候模拟滑动需要进入UI线程操作 @Override public void run() { invokeMethod(listView, "smoothScrollBy", new Object[]{distance, 0, true}, new Class[]{int.class, int.class, boolean.class}); } }); } /** * 遍历当前类以及父类去查找方法,例子,写的比较简单 * * @param object * @param methodName * @param params * @param paramTypes * @return */ public Object invokeMethod(Object object, String methodName, Object[] params, Class[] paramTypes) { Object returnObj = null; if (object == null) { return null; } Class cls = object.getClass(); Method method = null; for (; cls != Object.class; cls = cls.getSuperclass()) { //因为取的是父类的默认修饰符的方法,所以需要循环找到该方法 try { method = cls.getDeclaredMethod(methodName, paramTypes); break; } catch (NoSuchMethodException e) { TAppLog.i("LG", e.getMessage());// e.printStackTrace(); } catch (SecurityException e) { TAppLog.i("LG", e.getMessage());// e.printStackTrace(); } } if (method != null) { method.setAccessible(true); try { returnObj = method.invoke(object, params); } catch (IllegalAccessException e) { TAppLog.i("LG", e.getMessage()); } catch (IllegalArgumentException e) { TAppLog.i("LG", e.getMessage()); } catch (InvocationTargetException e) { TAppLog.i("LG", e.getMessage()); } } return returnObj; }
0 0
- 反射父类方法
- 类名反射&&方法反射
- Java反射查找父类方法
- 反射类属性方法
- 反射 类的方法
- 反射调用类方法
- 反射类方法
- php 类方法反射
- 方法的反射类
- 反射--> 构造方法Constructor类的反射
- 反射 --- 成员方法Method类的反射
- iOS反射---2.类方法的反射
- 反射 类的main方法
- 反射类及方法执行
- java反射类main方法
- 反射执行类的方法
- java反射----类方法提取
- 反射类的构造方法
- 数据集处理
- Android属性动画ValueAnimator快速上手
- 离线编程国内外发展现状与前景预测
- Node.js and Express
- java-ToStringBuilder介绍
- 反射父类方法
- Swift 宏定义
- java中list和arrayList区别
- 阶梯乘法——阶乘与梯乘
- Spark2.0.0集群搭建部署
- android开发自定义View(三)仿芝麻信用积分
- Flume采集日志进入HDFS以及Hadoop环境搭建
- 分布式缓存架构基础
- git详解