一、代码

package com.sangfor.tree;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;interface ProxyInterFace  {  public void proxyMethod();
}  class TargetObject implements ProxyInterFace  {  public void proxyMethod() {  System.out.println("我被代理了,哈哈!");  }
}  class ProxyObject implements InvocationHandler {  //代码的对象  public Object targetObject;  public void setTargetObject(Object targetObject) {  this.targetObject = targetObject;  }  public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {  //调用,传入一个目标对象,和对应的对象参数  System.out.println("代理前 你可以做的事情");  Object object =  method.invoke(targetObject, args);System.out.println("代理后 你可以做的事情"); return object;}
}  public class ProxyDemo {  public static void main(String[] args) { //代理的目标对象  ProxyInterFace  target = new TargetObject();//代理器  ProxyObject proxy =  new ProxyObject();proxy.setTargetObject(target);//需要传进函数的handlerInvocationHandler handler = proxy;//生存新的代理对象Object newProxyObject = Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), handler);//新的代理对象执行方法((ProxyInterFace)newProxyObject).proxyMethod();}
}

二、结果

代理前 你可以做的事情
我被代理了,哈哈!
代理后 你可以做的事情

Android插件化开发基础之Java动态代理(proxy)机制的简单例子相关推荐

  1. Android插件化开发基础之Java类加载器与双亲委派模型

    类加载器 Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程. 在加载阶段,java虚拟机需 ...

  2. Android插件化开发基础之Java反射机制研究

    一.获得Class对象 Class<?> c = Class.forName("classname"); 抛出ClassNotFoundException 二.获得实现 ...

  3. Android插件化开发基础之App如何动态加载类

    在 Java 里面,我们可以把一些类放到 .jar 文件里面,然后用 ClassLoader 动态加载.例如: URLClassLoader ucl = URLClassLoader.newInsta ...

  4. Android插件化开发基础之静态代理模式

    一 Proxy模式 意图: 为其他对象提供一种代理以控制这个对象的访问. 适用性: l  远程代理( Remote Proxy ): 为一个对象在不同的地址空间提供局部代表. l  虚代理(Virtu ...

  5. Android插件化开发之动态加载本地皮肤包进行换肤

    Android插件化开发之动态加载本地皮肤包进行换肤 前言: 本文主要讲解如何用开源换肤框架 android-skin-loader-lib来实现加载本地皮肤包文件进行换肤,具体可自行参考框架原理进行 ...

  6. Android插件化开发指南——Hook技术(一)【长文】

    文章目录 1. 前言 2. 将外部dex加载到宿主app的dexElements中 3. 插件中四大组件的调用思路 4. Hook 2.1 对startActivity进行Hook 2.1.1 AMS ...

  7. Android插件化开发指南——插件化技术简介

    文章目录 1. 为什么需要插件化技术 2. 插件化技术的历史 3. 插件化实现思路 3.1 InfoQ:您在 GMTC 中的议题叫做<Android 插件化:从入门到放弃>,请问这个标题代 ...

  8. Android插件化开发之解决OpenAtlas组件在宿主的注冊问题

    Android插件化开发之解决OpenAtlas组件在宿主的注冊问题 OpenAtlas有一个问题,就是四大组件必须在Manifest文件里进行注冊,那么就必定带来一个问题,插件中的组件都要反复在宿主 ...

  9. Android插件化开发指南——实践之仿酷狗音乐首页

    文章目录 1. 前言 2. 布局分析 3. 底部导航栏的实现 4. 顶部导航栏和ViewPager+Fragment的关联 1. 前言 在Android插件化开发指南--2.15 实现一个音乐播放器A ...

最新文章

  1. C++ - 编写一个从字符串转变成长整型的函数
  2. 开课吧python视频百度云-做摄影2年,工资5000,兼职2W...
  3. 牛客-小w的魔术扑克【并查集】
  4. java8 streams_Java 8 Streams API作为友好的ForkJoinPool外观
  5. SAS宏保存以便快速调用的三种解决方案(转载)
  6. php中函数前加符号的作用分解
  7. 华为云数据库首席架构师:关于数据库他这样说……
  8. 阿里巴巴超越腾讯重新成为中国市值最高上市公司!
  9. BZOJ2654 Tree
  10. flutter 防止键盘弹出 导致超出屏幕
  11. LinuxC语言のUDP简易聊天室 sokcet
  12. SVM支撑向量机原理
  13. tensorflow 2.5.0 ( keras )搭建wgan-gp 和 div
  14. 【严蔚敏数据结构题集】C/C++编程线性表练习题(一)
  15. 助力疫情防控,无接触式Beacon蓝牙考勤打卡方案
  16. Android usb网卡配置ip地址,安卓手机通过电脑USB上网设置教程
  17. VBS播放WMP文件
  18. 商业智能BI全解析,探寻BI本质与发展趋势
  19. 用VHDL编写testbench激励文件
  20. 室内定位技术及机场方案建议

热门文章

  1. docker-compose 一键部署分布式配置中心Apollo
  2. Blazor 模板化组件开发指南
  3. 2020.NET开发者大会大会线上同步直播,以及参会秘籍
  4. 【BCVP更新】StackExchange.Redis 的异步开发方式
  5. 程序员还有35岁的坎吗?
  6. 合集| 21 篇技术文章,带你从零入门 K8s
  7. 提高文档翻译效率神器:VS Code 插件之 Translator Helper
  8. 2020年你应该学习 .Net Core
  9. 微软宣布SQL Server 2019免费支持Java
  10. 微软推出了Cloud Native Application Bundles和开源ONNX Runtime