笔试题:写一个ArrayList 的动态代理类
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 的动态代理类相关推荐
- 写一个ArrayList类的动态代理类
动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实,代理对象对客户隐藏了实际对象.动态代理可以对请求进行其他的一些处理,在不允许直接访问某些类,或需要对访问做一些特殊处理等,这时候可以考虑 ...
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小
2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小. 我的大致思路是把这个整型数组转换成String数组,然后通过String类的compareTo方 ...
- 第六篇 - 手写基于接口实现动态代理
Github源码下载地址:https://github.com/chenxingxing6/sourcecode/tree/master/code-proxy 一.前言 我们知道常见的动态代理有两种实 ...
- 一个简单 JDK 动态代理的实例
动态代理的步骤: 创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法. 创建被代理的类和接口 通过 Proxy 的静态方法 newProxyInsat ...
- 设计一个事务增强的动态代理类, 对持久层的用户的CRUD操作进行事务增强 即:
动态代理类: package com.bj169.invoke;import com.bj169.dao.UserDao; import com.bj169.util.HibernateUtil; i ...
- python写一个地球同步卫星图动态壁纸(第三部分)
-------------------------------- 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部 ...
- python写一个地球同步卫星图动态壁纸(第二部分)
-------------------------------- 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部 ...
- spring AbstractBeanDefinition创建bean类型是动态代理类的方式
1.接口 Class<?> resourceClass 2.获取builder BeanDefinitionBuilder builder = BeanDefinitionBuilder. ...
- 初看Mybatis 源码 (二) Java动态代理类
先抛出一个问题,用过Mybatis的都知道,我们只需要定义一个Dao的接口,在里面写上一些CRUD相关操作,然后配置一下sql映射文件,就可以达到调用接口中的方法,然后执行sql语句的效果,为什么呢? ...
最新文章
- 管网环的闭合差c语言编程,最大环的闭合差管网平差
- 短短的 RESTful API 设计规范
- 翻译:MariaDB RENAME TABLE语句
- Xamarin Essentials教程安全存储SecureStorage
- java date传输类型错误_转换日期格式:Java中的转换错误?
- Redis数据库-键的生存时间与过期时间的区别
- SpringMVC @ModelAttribute注解
- jQuery动画二级下拉菜单
- 拓端tecdat|R语言生存分析数据分析可视化案例
- 【知识图谱系列】清华大学基于对比学习的图谱预训练模型GCC
- CS和BS 到底是什么
- Mstar 648 平台遥控器/按键包POWER键配置
- html添加右键菜单,JS添加右键菜单
- 怎么设置计算机桌面壁纸,电脑桌面壁纸无法设置如何处理
- 【T+】去掉畅捷通T+左边那些不用的云应用
- 贝叶斯法则,先验概率,后验概率,最大后验概率
- R语言之管道符的使用和学习
- 【转】欧式空间与酉空间——概念区分
- 冒泡算法的实现(java)
- 汽车行业V模型开发详解
热门文章
- 【机器学习基础】算法工程师必备的机器学习--EM
- 【深度学习】编写同时在PyTorch和Tensorflow上工作的代码
- AI基础:词嵌入基础和Word2vec
- 终于等到你!GitHub 终于支持 multi-line comments!
- 亮相 LiveVideoStackCon 2021,网易云信解构自研大规模传输网 WE-CAN
- Po校园接入云信,多机位“有毒”直播燃爆LIVE
- 【IBatis.Net】 各种配置说明
- HtmlAgilityPack中SelectSingleNode的XPath和CSS选择器
- C++ 应用程序性能优化
- Android 中文 API ——对话框 AlertDialog.Builder