java - Java 集合中的静态方法需要澄清吗?

标签 java

我知道泛型,但我不清楚这种语法。例如,在 Collections.sort() 中:

public static <T> void sort(List<T> list, Comparator<? super T> c)

静态的意义是什么<T>在返回类型 void 之前?

最佳答案

来自 sort 的方法签名:

public static <T> void sort(List<T> list, Comparator<? super T> c) {

<T>定义一个可以在方法定义中引用的任意泛型类型 T。

我们在这里所说的是该方法需要一个 List某种类型的(我们不关心是哪种)T 和 Comparator另一种类型,但这种类型必须是 T 的父类(super class)型。这意味着我们可以这样做:

Collections.sort(new ArrayList<String>(), new Comparator<String>());
Collections.sort(new ArrayList<Integer>(), new Comparator<Number>());

但不是这个

Collections.sort(new ArrayList<String>(), new Comparator<Integer>());

关于java - Java 集合中的静态方法需要澄清吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007360/

相关文章:

java - JToolBar 的渐变背景

java - 在 EAR 项目中,EJB 在部署时出现两次

java - 在 Java 中缩放 SVG

java - 我怎样才能像这个应用程序中的那样制作信息屏幕

java - Jboss 中 list 主要属性的签名文件摘要无效

java - 有没有一种方法可以获取当前连接到服务器的客户端的 IP 地址列表?

java - Optional.ofNullable 与Optional.fromNullable 之间有什么区别

java - 在 Linux 上执行 grep 命令并捕获结果

java - 工厂类,这样我就可以改变我的其余客户端

java - Jackson Databind 类路径问题