2015-06-19 137 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 
}