package com.zhangxueliang.demo;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.List;/*** 笔试题:写一个ArrayList的动态代理类  反射*/
public class ProxyTest {public static void main(String[] args) {List<String> list=new ArrayList<>();ClassLoader classLoader = list.getClass().getClassLoader();Class<?>[] interfaces = list.getClass().getInterfaces();List<String> listProxy = (List<String>) Proxy.newProxyInstance(classLoader, interfaces,(Object proxy, Method method, Object[] args0)->{return method.invoke(list,args0);});
/*List<String> listProxy = (List<String>) Proxy.newProxyInstance(classLoader, interfaces,new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {return method.invoke(list, args);}});
*/listProxy.add("我是动态代理对象添加的元素");System.out.println(list);}
}

笔试题:写一个ArrayList 的动态代理类相关推荐

  1. 写一个ArrayList类的动态代理类

    动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实,代理对象对客户隐藏了实际对象.动态代理可以对请求进行其他的一些处理,在不允许直接访问某些类,或需要对访问做一些特殊处理等,这时候可以考虑 ...

  2. 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小

    2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小. 我的大致思路是把这个整型数组转换成String数组,然后通过String类的compareTo方 ...

  3. 第六篇 - 手写基于接口实现动态代理

    Github源码下载地址:https://github.com/chenxingxing6/sourcecode/tree/master/code-proxy 一.前言 我们知道常见的动态代理有两种实 ...

  4. 一个简单 JDK 动态代理的实例

    动态代理的步骤: 创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法. 创建被代理的类和接口 通过 Proxy 的静态方法 newProxyInsat ...

  5. 设计一个事务增强的动态代理类, 对持久层的用户的CRUD操作进行事务增强 即:

    动态代理类: package com.bj169.invoke;import com.bj169.dao.UserDao; import com.bj169.util.HibernateUtil; i ...

  6. python写一个地球同步卫星图动态壁纸(第三部分)

    -------------------------------- 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部 ...

  7. python写一个地球同步卫星图动态壁纸(第二部分)

    -------------------------------- 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部 ...

  8. spring AbstractBeanDefinition创建bean类型是动态代理类的方式

    1.接口 Class<?> resourceClass 2.获取builder BeanDefinitionBuilder builder = BeanDefinitionBuilder. ...

  9. 初看Mybatis 源码 (二) Java动态代理类

    先抛出一个问题,用过Mybatis的都知道,我们只需要定义一个Dao的接口,在里面写上一些CRUD相关操作,然后配置一下sql映射文件,就可以达到调用接口中的方法,然后执行sql语句的效果,为什么呢? ...

最新文章

  1. 管网环的闭合差c语言编程,最大环的闭合差管网平差
  2. 短短的 RESTful API 设计规范
  3. 翻译:MariaDB RENAME TABLE语句
  4. Xamarin Essentials教程安全存储SecureStorage
  5. java date传输类型错误_转换日期格式:Java中的转换错误?
  6. Redis数据库-键的生存时间与过期时间的区别
  7. SpringMVC @ModelAttribute注解
  8. jQuery动画二级下拉菜单
  9. 拓端tecdat|R语言生存分析数据分析可视化案例
  10. 【知识图谱系列】清华大学基于对比学习的图谱预训练模型GCC
  11. CS和BS 到底是什么
  12. Mstar 648 平台遥控器/按键包POWER键配置
  13. html添加右键菜单,JS添加右键菜单
  14. 怎么设置计算机桌面壁纸,电脑桌面壁纸无法设置如何处理
  15. 【T+】去掉畅捷通T+左边那些不用的云应用
  16. 贝叶斯法则,先验概率,后验概率,最大后验概率
  17. R语言之管道符的使用和学习
  18. 【转】欧式空间与酉空间——概念区分
  19. 冒泡算法的实现(java)
  20. 汽车行业V模型开发详解

热门文章

  1. 【机器学习基础】算法工程师必备的机器学习--EM
  2. 【深度学习】编写同时在PyTorch和Tensorflow上工作的代码
  3. AI基础:词嵌入基础和Word2vec
  4. 终于等到你!GitHub 终于支持 multi-line comments!
  5. 亮相 LiveVideoStackCon 2021,网易云信解构自研大规模传输网 WE-CAN
  6. Po校园接入云信,多机位“有毒”直播燃爆LIVE
  7. 【IBatis.Net】 各种配置说明
  8. HtmlAgilityPack中SelectSingleNode的XPath和CSS选择器
  9. C++ 应用程序性能优化
  10. Android 中文 API ——对话框 AlertDialog.Builder