覆盖与重载(一):泛型能决定方法宗量吗?
来源:互联网 发布:sql 数据默认值 编辑:程序博客网 时间:2024/06/04 01:00
我们知道,方法的覆盖与重载都是由方法的签名决定的,而不同类型的泛型变量不仅差异明显,且不能相互转换,那么泛型的类型是否能决定方法的宗量呢?
声明如下的接口,试图利用泛型的差异实现重载:
public interface PrintService { void print(List<String> names); void print(List<Integer> names);}
但编译器直接提示错误(方法的签名定义一致错误):
Erasure of method print(List<String>)is the same as another method in type PrintService
说明泛型的类型并不能决定方法的宗量。
但在实践中,调用方法时,参数却又强制要求满足泛型的类型,否则又会提示如下错误:
The method print(Set<String>) in the type Parent is not applicable for the arguments (Set<Object>)
这不是很矛盾吗?既然能检测出它们之间的差异,却又将它们定义为相同的方法宗量。
这是因为虚拟机都是编译期对泛型进行检验,编译完成后泛型的类型信息就会抹除,所以在实际调用时只是泛型的类型不一致,最后就会导致出现两个一模一样的方法,所以必然就会出错了。
阅读全文
0 0
- 覆盖与重载(一):泛型能决定方法宗量吗?
- 方法覆盖与方法重载
- 方法的覆盖与重载
- 方法的重载与覆盖
- 方法的重载与覆盖
- 方法重载与方法覆盖的区别
- Java 中的方法重载与方法覆盖
- java方法的重载与覆盖
- java方法的重载与覆盖
- 关于方法的覆盖与重载
- Java方法覆盖与方法重载的异同
- 黑马程序员_方法重载与方法覆盖的异同
- java 方法重载与方法覆盖的异同
- java中重载方法与覆盖方法调用规则
- 方法的重载与方法的重写(覆盖)
- 重载、覆盖与隐藏
- 重载、覆盖与隐藏
- 重载与覆盖
- MPEG-1 Audio 编码器
- Unity Shader入门精要笔记(六):由一个简单的顶点/片元着色器谈起
- Centos7 安装redis及其入门使用
- 不同字符集编码的英文字母和中文汉字的字节数
- JS-高级 DOM 技术
- 覆盖与重载(一):泛型能决定方法宗量吗?
- Java变量
- express-2-中间件
- 【Maven】Eclipse 使用Maven创建Java Web项目
- Go net/PRC源码阅读server.go
- Win7设置AHCI模式启动
- centos 修改root密码
- 索引理解
- 再谈Cocos2dx2.x.x编译