动态代理之: com.sun.proxy.$Proxy0 cannot be cast to 问题

 

转:

动态代理之: com.sun.proxy.$Proxy0 cannot be cast to 问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38409944/article/details/80296354
Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to Father.FatherInter at Father.Main.main(Main.java:13)
  • 1
  • 2

不知道写动态代理的时候 你们有没有被这个问题困扰过
反正我是有的 不过和网上的问题不一样

Google很多 答案都是 因为被代理的类没有继承接口 而是继承了一个基类

问:为什么动态代理必须针对接口?
**答:**JDK动态代理的原理是根据定义好的规则,用传入的接口创建一个新类,这就是为什么采用动态代理时为什么只能用接口引用指向代理,而不能用传入的类引用执行动态类。(摘自网络 自己没有看源码)

我的 问题 则是因为

Son s = (Son)Proxy.newProxyInstance(si.getClass().getClassLoader(), si.getClass().getInterfaces(), m);
  • 1

在我这里 Son是实现接口的实现类 这个时候就GG了

正解是

FatherInter s = (FatherInter)Proxy.newProxyInstance(si.getClass().getClassLoader(), si.getClass().getInterfaces(), m);
  • 1

在我这里 FatherInter是那个被实现的接口

两者唯一区别就是 Proxy.newProxyInstance返回的是接口类型 而我 却用实现类来接受 就出现了类型不匹配的问题

来看一下 官方API如何来解释这个方法返回值
这里写图片描述

返回指定接口的实体类
具体为什么不能用实现类来接收 而是要用 接口 我还不是很明白
以上都是个人见解 欢迎讨论

动态代理怎么实现 可以看一下这篇博客 在最后那一块知识

转载于:https://www.cnblogs.com/libin6505/p/10705749.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客16596 计算系数(排列组合)

链接:https://ac.nowcoder.com/acm/problem/16596 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 给定一个多项式(axby)k&#xff0…

MIT新研究:过去80年,算法效率提升到底有多快?

来源:MIT,新智元编辑:David【导读】随着摩尔定律走向终结,靠提升计算机硬件性能可能越发难以满足海量计算的需要,未来的解决之道在于提升算法的效率。MIT的这篇新论文总结了过去80年来,算法效率的提升究竟有…

2017沈阳站 Tree

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid6228 Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1693 Accepted Submission(s): 978 Problem DescriptionConsider a un-rooted tr…

快速幂模板(Python)

首先我们需要知道下面这个公式: (a^b) mod c((a mod c)^b) mod c 现在试着用最常规的方法计算 a^b 算法一: def spow(n, m):res 1for i in range (m):res * nreturn res print(spow(2, 100))显然这个算法的时间复杂度为 O(n),我们需要找到…

AI 被当做炒作工具?

来源:AI科技大本营(ID:rgznai100)翻译:AI科技大本营编译:禾木木上班路上由于高峰期,眼看就要迟到了,这个时候会想“如果汽车能自动完成这种高度重复的动作,我就可以在路上参加我的会…

第五周助教心得体会

本周心得: 本周为我参加助教工作的第五周。本周同学们要搞定的内容: 作业链接 fork词频统计仓库,创建修改分支对代码进行效能分析,改进后提交将过程写入博客并发布(提交42人 未提交31人 作业平均成绩:6.7分&#xff0c…

牛客16732 序列(排列组合)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 链接:https://ac.nowcoder.com/acm/problem/16732 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语…

什么是传感器融合?我们从“盲人摸象”讲起……

来源:传感器专家网今天,我们的生活高度依赖传感器。传感器作为人类“五感”的延伸,去感知这个世界,甚至可以观察到我们人体感知不到的细节,这种能力也是未来智能化社会所必须的。不过,单个传感器的性能再卓…

算法竞赛入门经典 例题6-2 铁轨(C、python)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 某城市有一个火车站,铁轨铺设如图所示。有n节车厢从A方向驶入车站,按进站顺序编号为 1~n 。你的任务是判断是否能让它们按照某种特定的顺序进入 B 方…

redis集群的搭建详细教程

1 Redis-cluster架构图 redis-cluster投票:容错 (至少要三个才可以,才能超过半数) 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效…

王飞跃 | 面向未来的AI人才应该具备这3种思维

来源:湛庐阅读作者:王飞跃 苇草智酷学术委员、中科院自动化研究所复杂系统与智能科学重点实验室主任、中国科学院社会计算与平行系统研究中心主任当今最好的人工智能程序到底有多智能?它们是如何工作的?能做些什么?我…

Java安全API

java提供了完整的密码学API,我们可以结合密码学相关的概念来系统的学习这些API。 1.密码学简介(crypto) 密码学通俗来说就是研究如何对信息进行加密和破密,如果不是专门研究信息安全,通常我们只需学习和使用加密的方法,所以破密的相关知识我们…

算法竞赛入门经典 例题6-6 小球下落(python、C)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为 1,2,3,… ,2D -…

NLPer,是时候重视因果推理了!这有一份杨笛一等撰写的综述

来源:机器之心编辑:张倩在这篇综述论文中,来自佐治亚理工学院的杨笛一等十几位研究者系统阐述了自然语言处理中的因果推理。科学研究的一个基本目标是了解因果关系。然而,尽管因果在生活和社会科学中扮演了重要角色,它…

【知识图谱】一、知识表示与知识建模

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 一、早期知识表示简介 知识表示的重要性 知识是智能的基础 机器可以获得知识机器可以运用知识 符合计算机要求的知识模式 计算机能存储、处理的知识表示模式数据结构(List、Table、T…

【报告】2021物联网行业研究报告(附PDF下载)

来源:兴业证券编辑:Zero导语物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网 之后世界信息产业发展的第三次浪潮。1、云管端的硬件升级云、管、端革新带动物联网爆发…

pyecharts 绘制地图

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! # 导入相关包 from pyecharts import options as opts from pyecharts.charts import Map, Geo, Lindata pd.read_csv(rC:\Users\1979\Desktop\处理后的数据\谷物产量(公吨&#xff0…

100句励志名句让你在困境中绝地求生

----------------------不要忘了自己还活着,活着就应该去追求你想要的一切,没有什么能阻挡你,除了你自己...... 1、有志者自有千计万计,无志者只感千难万难。 2、实现自己既定的目标,必须能耐得住寂寞单干。 3、世界会向那些有目标和远见的人让路。 4、必…

表单制作注意事项

所有input的长度都做限制,都有验证方式 限制表单只能提交一次input 样式初始化type 为 mobile 与 number 时调出的键盘界面不同转载于:https://www.cnblogs.com/echolife/p/10718468.html

Python 绘制热力图参数详解

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 参数设置: (1)热力图输入数据参数: data:矩阵数据集,可以是numpy的数组(array),也可以是pandas的DataFrame。如…