java - java 泛型中的泛型类型参数

标签 java generics java-8

有没有一种方法可以将泛型类型传递给泛型类,例如

interface Wrapper<T, R> {}

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

这里 Result 采用带有类型参数 T 和 RWrapper 类型之一。 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 来表示 WrapperTR 来表示包装器成分。尽管 W 对您来说可能完全不必要,但拥有 TR 就足够了。

关于java - java 泛型中的泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58968158/

相关文章:

java - 当值不在另一个表上时 SQLite 选择

java - 错误 : This fragment should provide a default constructor (a public constructor with no arguments)

java - 如何设置Java线程的cpu核心亲和性?

swift - 无法将 swift 泛型子类转换为泛型父类(super class)

C# 工厂方法与泛型强制转换为接口(interface)

Android:错误:任务应用执行失败:transformClassesWithPreJackPackagedLibrariesForDebug

java - 使用 Java 8 获取 Set 中所有项目最常见名称的正确方法

java - Orika 类 com.sun.proxy 无法访问

c# - linq 相当于 'select *' sql 的通用函数?

Java 8 Stream map 调用字符串与组合成一个