无法理解复杂的参数化返回类型 - Java

时间:2016-09-26 12:36:49

标签: java generics parameters return-type

我在Java中遇到过与此类似的代码段

public <H extends ABC<I, U>, I, U> Set<U> get(Type<H, I, U> type) {

}

我不明白这一点。 我只知道它需要参数化类型Type<H,I,U>的参数,并返回Set<U>这是返回类型。 但是,我不明白这一部分:

<H extends ABC<I,U>, I,U>

有人可以澄清吗?

此致 阿赫亚

1 个答案:

答案 0 :(得分:5)

这意味着

  • 该方法有三种类型参数:HIU
  • IU可以是任何
  • H必须延长ABC<I, U>(或者它实际上可以 ABC<I, U>

所以假设你有一个类型ABC,它有两个类型参数。这就是说,例如,这是有效的:

Type<ABC<String, Date>, String, Date> type = new Type<>();
Set<String> set = instance.get(type);

...因为HABC<String, Date>IStringUDate