【发布时间】:2011-01-15 20:09:04
【问题描述】:
我想知道为什么 Arrays 类的 sort 方法要求一个 Object[] 类型的参数。为什么参数不是 Comparable[] 类型。如果您不传递 Comparable[],则会生成 ClassCastException。
为什么 ... public static void sort(Object[] a) 而不是 public static void sort(Comparable[] a) ? 谢谢
【问题讨论】:
-
您在 Java api 的其他地方也有同样的情况,例如ObjectOutputStream 需要一个实现 Serializable 的对象。我猜,开发人员试图阻止我们进行不必要的强制转换。
-
在过去,有很多人在实施 JDK,而不仅仅是 Sun。该类的实现可能需要 Comparable,但允许任何确定性、稳定的排序。 (假设)
标签: java interface casting comparable