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