相关疑难解决方法(0)

Java中的泛型和排序

假设你用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等?)

java sorting generics type-safety

14
推荐指数
2
解决办法
8609
查看次数

这个类声明在Java中意味着什么?

我只是学习树和一件我不明白的事情是类声明:

例如:class BinarySearchTree<T extends Comparable<? super T>>.

现在,请您解释一下括号中的内容和" <? super T>"?

你能引用我的任何好消息来源吗?谢谢.

java generics

6
推荐指数
2
解决办法
3727
查看次数

C++模板和Java/C#泛型之间有什么区别?有什么限制?

我从这里读了一篇有趣的文章/主题/讨论,我得到了以下问题:

  • Java/C#泛型有哪些局限性?
  • 使用Java/C#泛型不可能使用C++模板有什么可能?

编辑1 Eric Lippert提出的更多推荐问题

  • 使用C#泛型可以实现哪些模式但使用C++模板却无法实现?
  • C#的真正泛型类型和Java的类型擦除泛型类型有什么区别?

c# c++ java generics template-meta-programming

6
推荐指数
1
解决办法
5392
查看次数