gpt4 book ai didi

java - 为什么在使用 Collections.sort() 而不是使用 TreeSet.add(new Object()) 时出现编译时错误

转载 作者:搜寻专家 更新时间:2023-11-01 01:08:21 26 4
gpt4 key购买 nike

为什么我可以这样做:

TreeSet<Object> treeSet = new TreeSet<Object>();
treeSet.add(new Object());

但不是这个:

final List<Object> objects = new ArrayList<Object>();
Collections.sort(objects);

第一个给了我一个 ClassCastException 但第二个给了我一个编译错误。据我了解,这两种情况下的实际问题是相同的:java.lang.Object 没有实现 Comparable 接口(interface)。

更新:嗯,出于某种原因,这只适用于 Java 7 而不是 6。我是傻了还是累了?有人可以解释一下吗?

更新#2:根据 Java 版本,我确实得到了不同的结果。请看图片: enter image description here

最佳答案

起初我在这里皱眉,但你是对的。

SortedSet 接口(interface)不会强制您将其泛型类型指定为Comparable,因为 TreeSet 还允许您指定一个 Comparator 用于不是Comparable 的类型。编译器无法区分这两个选项。

关于java - 为什么在使用 Collections.sort() 而不是使用 TreeSet.add(new Object()) 时出现编译时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com