《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