gpt4 book ai didi

java - Java 中的泛型和排序

转载 作者:太空狗 更新时间:2023-10-29 23:00:49 24 4
gpt4 key购买 nike

假设您在 Java 中编写了一个静态函数来对数组进行排序,很像 Arrays.sort()Arrays.sort() 的问题是它接收一个 Object 数组,如果它的元素没有实现 Comparable 就会抛出一个 ClassCastException .

所以您希望您的函数接收一个 Comparable 子类型的数组作为参数。类似的东西可以工作:

static <T extends Comparable> void sort(T[] array);

该签名的问题在于您仍然可以传递一个 Comparables 数组,例如整数和字符串,这会导致 RuntimeException

那么,您如何创建一个函数,它只接收一个数组,该数组的元素实现 Comparable 并且具有相同的类型(例如 Integer、String 等?)

最佳答案

使用

static <T extends Comparable<? super T>> sort(T[] array);

这是完成任务的最通用规范。基本上,它断言 T 是一种可以与自身进行比较的类型。

关于java - Java 中的泛型和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071929/

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