【问题标题】:In java.util, why is it Arrays.sort(Object[]) and not Arrays.sort(Comparable[])?在 java.util 中,为什么是 Arrays.sort(Object[]) 而不是 Arrays.sort(Comparable[])?
【发布时间】:2023-02-15 01:58:31
【问题描述】:

如果 Arrays.sort(Object[]) 抛出一个运行时异常,如果数组的任何元素不能转换为 Comparable,那么制作方法签名 Arrays.sort(Comparable[]) 并把那些运行时编译错误的异常?

【问题讨论】:

    标签: java arrays


    【解决方案1】:

    java.util 中数组排序的方法签名是 Arrays.sort(Object[]) 而不是 Arrays.sort(Comparable[]) 的原因是为了提供对各种类型数组排序的灵活性。通过接受一个 Object 类型的数组,sort 方法可以处理任何对象类型的数组,包括那些没有实现 Comparable 接口的数组。

    这种灵活性在对自定义类型的数组进行排序时非常有用,因为它允许开发人员对自定义对象的数组进行排序,而无需为这些对象实现 Comparable 接口。相反,开发人员可以将自定义 Comparative 传递给提供排序逻辑的排序方法。

    通过将方法签名更改为 Arrays.sort(Comparable[]) 将运行时异常转化为编译错误会使方法的灵活性降低和限制性增加,这在某些情况下可能会出现问题。它还会使不实现 Comparable 接口的对象数组更难排序,因为它们需要包装在实现该接口的对象中。

    【讨论】:

      猜你喜欢
      • 2011-01-15
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 2020-09-08
      • 2019-10-11
      相关资源
      最近更新 更多