假设你用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等?)
我只是学习树和一件我不明白的事情是类声明:
例如:class BinarySearchTree<T extends Comparable<? super T>>.
现在,请您解释一下括号中的内容和" <? super T>"?
你能引用我的任何好消息来源吗?谢谢.
我从这里读了一篇有趣的文章/主题/讨论,我得到了以下问题:
编辑1 Eric Lippert提出的更多推荐问题