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

Che*_*ale 1 java generics parameters return-type

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

<H extends ABC<I,U>, I,U>
Run Code Online (Sandbox Code Playgroud)

任何人都可以澄清一下吗?

此致,Chetan

T.J*_*der 5

这意味着

  • 该方法有三个类型参数:H,I,和U
  • I并且U可以是任何东西
  • H必须延伸ABC<I, U>(或实际上可以 ABC<I, U>)

所以大概你有一个ABC有两个类型参数的类型.这就是说,例如,这将是有效的:

Type<ABC<String, Date>, String, Date> type = new Type<>();
Set<String> set = instance.get(type);
Run Code Online (Sandbox Code Playgroud)

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