【问题标题】:Java: Generics return statement syntaxJava:泛型返回语句语法
【发布时间】:2015-08-10 09:27:45
【问题描述】:

我很难理解这个 return 语句的语法,尤其是前面的 C:

 <C>

我对泛型很陌生,但我知道基础知识。谁能解释一下?

public abstract <C> CustomMap<K, C> map(Function<? super V, ? extends C> f)

【问题讨论】:

    标签: java generics syntax


    【解决方案1】:

    &lt;C&gt; 不是返回类型。它是一个只能由map 方法使用的新泛型类型变量的声明。

    由于map 方法似乎有额外的泛型类型变量——VK——它们的声明方式与C 不同,我们可以假设VK 是在类级别(包含此方法的类)声明为泛型类型变量。如果不是,VK 将被视为常规标识符(即编译器将期望找到名称为 VK 的类)。

    根据您的方法的签名及其返回类型 (CustomMap),我可以假设此方法属于某个实现 Map&lt;K,V&gt; 接口的类。它接受Function,它接收V 类型的实例并返回C 类型的实例,因此可以合理地假设它将Map&lt;K,V&gt; 转换为Map&lt;K,C&gt;(即密钥保持不变并且值被转换)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-23
      • 2018-07-02
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 2013-10-01
      相关资源
      最近更新 更多