Java 泛型类型的类型参数部分跟在泛型类名之后。例如:
class name<T1, T2, ..., Tn> { /* ... */ }
一旦掌握了它,它就会非常直观。然而,我完全无法在 Comparator<T>
的默认接口(interface)方法中看到一些独立的类型参数部分。 .例如:
default <U> Comparator<T> thenComparing(
Function<? super T, ? extends U> keyExtractor,
Comparator<? super U> keyComparator)
很明显,该方法正在返回某种比较器对象,但是您如何解释独立的 <U>
用英语来说?
最佳答案
它引入了类型参数本身。如果您要在没有它的情况下编写方法签名:
Comparator<T> thenComparing(
Function<? super T, ? extends U> keyExtractor,
Comparator<? super U> keyComparator)
这意味着,应该存在一些对方法可见的名为 U
的具体类型。
关于java - Java 泛型中的独立类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58346334/