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

Sen*_*nza 0 java generics

方法

Filter<T,U> connect(final Filter<T,U> filter) {
...
return filter
}
Run Code Online (Sandbox Code Playgroud)

在课堂上

class Pipe<T>
Run Code Online (Sandbox Code Playgroud)

我收到错误"无法解析U".我们的想法是在不知道U类型的情况下,通常返回具有相同两种类型的相同过滤器.我怎么做?

目标是能够在不提供类型参数的情况下进行链接,因为它们不会被修改:

(new Pipe<Integer>).connect(new Filter<>(...)).connect(new Pipe<>)...
Run Code Online (Sandbox Code Playgroud)

上述expamle中Filter之后的第二个Pipe应隐式为泛型类型Integer.

Psh*_*emo 8

看起来你正试图让你的方法通用.为此,只需U在返回类型之前将泛型类型添加到其签名:

<U> Filter<T,U> connect(final Filter<T,U> filter) {
    ...
    return filter
}
Run Code Online (Sandbox Code Playgroud)