假设您在 Java 中编写了一个静态函数来对数组进行排序,就像Arrays.sort()
. 问题Arrays.sort()
在于它接收一个对象数组,ClassCastException
如果它的元素没有实现则抛出一个Comparable
。
所以你希望你的函数接收一个子类型的数组作为参数Comparable
。像这样的东西可以工作:
static <T extends Comparable> void sort(T[] array);
该签名的问题在于,您仍然可以传递带有整数和字符串的 Comparables 数组,这将导致RuntimeException
.
那么,如何创建一个只接收其元素实现 Comparable 并且具有所有相同类型(例如 Integer、String 等)的数组的函数?