2016-09-26 85 views
1

我已經在Java中不能夠理解複雜的參數返回類型 - 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> 

有人能澄清呢?

問候, 阿赫亞

回答

5

這意味着

  • 的方法有三個類型參數:HI,和U
  • 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>IString,並UDate

+1

謝謝。你的解釋帶來了清晰。 –