2015-06-19 92 views
0

的方法的Java:返回未知的泛型類型的方法

Filter<T,U> connect(final Filter<T,U> filter) { 
... 
return filter 
} 

是一類

class Pipe<T> 

我得到的錯誤 「無法解析U」。 這個想法只是一般地返回相同的過濾器與相同的兩種類型而不知道U型。我怎麼做?

我們的目標是能夠鏈條,而不提供類型參數,當他們沒有必要的,因爲他們沒有得到修改:

(new Pipe<Integer>).connect(new Filter<>(...)).connect(new Pipe<>)... 

在上面expamle篩選後的第二管道應該隱含地是泛型類型爲Integer。

回答

8

看起來你正在努力使你的method generic。要做到這一點,只需在返回類型前添加通用類型U即可:

<U> Filter<T,U> connect(final Filter<T,U> filter) { 
    ... 
    return filter 
}