Android 反射,动态代理
来源:互联网 发布:矩阵的幂次方 编辑:程序博客网 时间:2024/05/21 09:33
Android 反射,接口代理
简单的写一下,方便记忆
public class PayUtils implements InvocationHandler{ private void pay() { Class<?> aClass = null; Class<?> iClass = null; try { //反射类地址 aClass = Class.forName("*********"); //接口地址 iClass = Class.forName("*****.Listener"); } catch (ClassNotFoundException e) { e.printStackTrace(); } if (aClass != null && iClass != null) { try { //方法 Method method = aClass.getMethod("get", Context.class); //获取实例 Object payObject = method.invoke(aClass, activity); Class<?> payClass = payObject.getClass(); //获取需要方法 Method payMethod = payClass.getMethod("方法名", Activity.class, String.class, String.class, Bundle.class, iClass); Bundle extra = new Bundle(); extra.putBoolean(PaymentManager.PAYMENT_KEY_IS_NO_ACCOUNT, true); //代理 类加载器,接口class,回掉 Object o = Proxy.newProxyInstance(PayUtils.class.getClassLoader(), new Class[]{iClass}, this); payMethod.invoke(payObject, activity, null, "传递值", extra, o); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //回掉返回 String name = method.getName(); if (name.equals("onSuccess")) { } else if (name.equals("onFailed")) { } return null; }}
阅读全文
0 0
- Android 反射,动态代理
- 代理,动态代理,反射
- 代理,动态代理,反射
- 反射与动态代理
- 反射动态代理
- 反射机制动态代理
- 反射、动态代理原理
- 动态代理反射
- 反射和动态代理
- 反射和动态代理
- 反射的动态代理
- Java 反射-动态代理
- 反射与动态代理
- 反射(6)--动态代理
- 利用反射动态代理
- 反射-动态代理(实例)
- 反射与动态代理
- 反射之动态代理
- 将arguments转换成数组的方法
- android 集成第三方静态库的编译方法
- 蓝桥杯 入门训练 序列求和
- 我的mqtt协议和emqttd开源项目个人理解(6)
- Reqwest 使用教程
- Android 反射,动态代理
- 写在开头
- RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
- Windows下搭建基于Anaconda的Tensorflow环境
- 懂行的进,电路原理图checklist
- apache kylin 2.1.0+CDH5.8 安装部署教程
- 基于ftplib的交互式ftp客户端实现
- 套接字选项SO_LINGER
- Rails—HTML样式