【发布时间】:2015-04-13 00:05:56
【问题描述】:
Stack Overflow 上有很多关于排序泛型的问题;但是,我有兴趣以最简单的方式对泛型进行排序:没有嵌套。我下面的代码是尝试对元素的通用集或列表进行排序。
List<E> l = new LinkedList<>(arbSet);
Collections.sort(l);
arbSet 只是一组元素:Set<E> arbSet。
显然,这是有问题的 - 它不应该工作。为了确保我知道这一点,Eclipse 为我尝试调用 .sort 提供了以下信息:
绑定不匹配:Collections 类型的泛型方法 sort(List ) 不适用于参数 (List )。推断的类型 E 不是有界参数 >
所以,我做了一些文档咨询,查看sort 的specifications。
因此,我尝试确保sort 知道E 扩展Comparable:
第一行现在看起来像:
List<E extends Comparable<? super E>> l = new LinkedSet<>(arbSet);
现在,Eclipse 状态:
令牌“扩展”的语法错误,预期
我错过了什么?我觉得这是一个非常基本的例子,我只是错过了一些“面对面”的东西。为了进一步简化,所有arbSet 元素都是实现Comparable 接口的元素。
【问题讨论】:
-
类型参数
E声明在哪里?