有没有一种方法可以将泛型类型传递给泛型类,例如
interface Wrapper<T, R> {}
interface Result<T, Wrapper<T, R>> {
R getResult();
}
这里 Result
采用带有类型参数 T 和 R
的 Wrapper
类型之一。 Result
接口(interface)中的 getResult
方法返回 R
。
我所做的如下,
interface Result<T, W> {
<K> K getResult();
}
有没有更好的方法在java中做到这一点。
最佳答案
您需要为 Result
接口(interface)提供一个单独的类型参数。像这样的事情:
interface Result<T, R, W extends Wrapper<T, R>> {
R getResult();
}
现在您可以在结果中使用 W
来表示 Wrapper
或 T
和 R
来表示包装器成分。尽管 W
对您来说可能完全不必要,但拥有 T
和 R
就足够了。
关于java - java 泛型中的泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58968158/