我很难理解这个return语句的语法,尤其是前面的C:
<C>
我对泛型还比较陌生,但是我了解一些基础知识。有人可以解释一下吗?
public abstract <C> CustomMap<K, C> map(Function<? super V, ? extends C> f)
<C>
不是一个返回类型。它是一个声明新的泛型类型变量的语句,只能由 map
方法使用。
由于 map
方法似乎有额外的泛型类型变量 - V
和 K
- 它们的声明方式与 C
不同,我们可以假设 V
和 K
在包含此方法的类的类级别上声明为泛型类型变量。如果它们没有被声明为泛型类型变量,则 V
和 K
将被视为常规标识符(即编译器将期望找到名称为 V
和 K
的类)。
根据您的方法签名及其返回类型 (CustomMap
),我可以假设此方法属于实现 Map<K,V>
接口的某个类。它接受一个接收类型为 V
的实例并返回类型为 C
的实例的 Function
,因此可以合理地假设它将 Map<K,V>
转换为 Map<K,C>
(即键保持不变,值被转换)。