Java泛型中的通用类型参数

3
有没有一种方式可以将一个泛型类型传递给一个泛型类,例如
interface Wrapper<T, R> {}

interface Result<T, Wrapper<T, R>> {
    R getResult();
}

这里 Result 接受一种类型为 T 和 RWrapper 类型之一。在 Result 接口中,getResult 方法返回 R

我所做的是:

interface Result<T, W> {
    <K> K getResult();
}

有没有更好的方法在Java中实现这个功能。


interface Result<T, Wrapper<T, R> 中,Wrapper 没有使用您现有的 Wrapper<T, R> 接口。它通过声明一个同名的新类型参数来隐藏它。 - ernest_k
1个回答

4
您需要为Result接口添加一个单独的类型参数,像这样:
interface Result<T, R, W extends Wrapper<T, R>> {
    R getResult();
}

现在,您可以在结果中使用W来代表Wrapper,或者使用TR来代表wrapper组件。但是,也有可能对于您来说W是完全不必要的,只需要TR就足够了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接