《Java 核心技术 卷一》 泛型类型章节中 ”当泛型类型被擦除后...会发生冲突“,是为什么?

书上说 “冲突” ??

为啥是冲突 , 而不是覆盖 ??

Pair<T> 类中的 equals(T value) 方法 类型擦除后 不就是 equals(Object value) 吗 ,
正好覆盖 父类 Object 的 equals 方法呀


回答:

如果自动设置成overwrite,就和编写的目的不符合了吧,equals(T value) 本意是equals(String),而不是equals(Object)。而默认的标准比较方法是equals(Object), 这让程序无法明确代码的意图是想做什么,就设置为冲突了。


回答:

java 里面没有覆盖方法的概念吧,方法名称,参数类型。
你划线的地方,我理解的意思是:如果不考虑泛型擦除,这个 Pair是可以有上面两个 equals方法的,一个是继承 Object的,一个是自己的,但是有了泛型擦除后,就不能有 equals(String) 方法了

以上是 《Java 核心技术 卷一》 泛型类型章节中 ”当泛型类型被擦除后...会发生冲突“,是为什么? 的全部内容, 来源链接: utcz.com/p/944954.html

回到顶部