在 Java 中,方法签名前的 <T> 是什么意思?

In Java what does <T> before a method signature mean?

我想知道 static <T> 在这种情况下是什么意思?还是 <T> void?

我知道 static 和 void 都是什么意思,但我不确定 <T> 在这里是什么意思

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

<T> 表示在此声明中使用了通用 T。这有两个影响;

  • 第一个参数的第一种类型中的T必须与第二个参数中的类型匹配。 (而? super T意味着它必须是T的超级class或接口)如果不使用泛型,就没有办法做到这一点。
  • 可以使用 Collections.<Integer>sort(list, myComparator);
  • 之类的语句显式指定类型