java - Java 泛型中的独立类型参数

标签 java generics types java-8

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/

相关文章:

generics - 扩展 Scala 集合

c++ - 引用类型可以用作 STL 映射中的键类型吗

c# - 可以使方法具有随机类型吗?

generics - 高阶多态性 + 值类型

java - 如何在 Websphere Portal 上显示来自 Struts portlet 的 Excel 内容

java - 用Java实现一对多映射

spring - Resttemplate无法解析类型T的数组

java - java中泛型方法的区别

java - 在 RxJava 中调用 Observable 的任何订阅者回调之前执行操作

java - 将大样本放在二叉搜索树上(不平衡)