Java:在方法中返回未知的泛型类型

时间:2015-06-19 14:25:11

标签: java generics

方法

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中Filter之后的第二个Pipe应隐式为泛型类型。

1 个答案:

答案 0 :(得分:8)

看起来您正试图制作method generic。要执行此操作,只需在返回类型之前将通用类型U添加到其签名:

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