Java 为什么映射接口不限制键泛型类型以扩展可比性?

Java 为什么映射接口不限制键泛型类型以扩展可比性?,java,collections,Java,Collections,据我所知,java在进行比较时会强制转换一个键,如果一个键没有实现可比较的接口,那么在线程main java.lang.ClassCastException:maps.TreeMapExample$a中会出现异常,不能强制转换为java.lang.Comparable,这是RuntimeException 为什么不显式要求K扩展类签名中的可比较接口,例如公共接口映射{供编译器检查?HashMap不需要键可比较,但仍然实现映射接口。只有TreeMap有此要求 此外,TreeMap也可以与不可比较的

据我所知,java在进行比较时会强制转换一个键,如果一个键没有实现可比较的接口,那么在线程main java.lang.ClassCastException:maps.TreeMapExample$a中会出现异常,不能强制转换为java.lang.Comparable,这是RuntimeException


为什么不显式要求K扩展类签名中的可比较接口,例如公共接口映射{供编译器检查?

HashMap不需要键可比较,但仍然实现映射接口。只有TreeMap有此要求


此外,TreeMap也可以与不可比较的键一起使用,

HashMap不需要可比较的键,但仍然实现了Map接口。只有TreeMap有此要求

此外,TreeMap也可以与不可比较的键一起使用,

实际上,有此要求的不是TreeMap,而是SortedMap。实际上,有此要求的不是TreeMap,而是SortedMap。