Java泛型中的独立类型参数

San*_*eep 3 java generics types java-8

Java通用类型的类型参数部分遵循通用类名称。例如:

class name<T1, T2, ..., Tn> { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

一旦掌握了它,它就非常直观。但是,我完全迷住了在的默认接口方法中看到一些独立的类型参数部分Comparator<T>。例如:

default <U> Comparator<T> thenComparing(
        Function<? super T, ? extends U> keyExtractor,
        Comparator<? super U> keyComparator)
Run Code Online (Sandbox Code Playgroud)

显然,该方法将返回某种比较器对象,但是您如何<U>用英语解释独立式?

And*_*cus 5

它介绍了类型参数本身。如果要编写没有它的方法签名:

Comparator<T> thenComparing(
        Function<? super T, ? extends U> keyExtractor,
        Comparator<? super U> keyComparator)
Run Code Online (Sandbox Code Playgroud)

这意味着应该存在一些U对方法可见的具体类型。