You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java单类定义多个泛型 如何将方法泛型R改为类泛型替换UserDBResource

修改后完整代码

class ReadFunction<T, R extends DBResource> {

    private final Function<R, T> function;

    public ReadFunction(final Function<R, T> function) {
        this.function = function;
    }

    public T readValue(final R resource) {
        return Util.supplyOrNull(() -> this.function.apply(resource));
    }
}

核心修改点

  • 类声明新增泛型参数R extends DBResource,替换所有原代码中硬编码的UserDBResource类型
  • 成员变量function的入参类型、构造方法的入参函数类型同步调整为泛型R
  • 删除readValue方法上单独声明的方法级泛型<R extends DBResource>,直接复用类层级的泛型定义
  • 修复了原代码中readValue方法内缺失右括号的语法问题

使用示例

// 实例化时指定R为UserDBResource即可兼容原有逻辑
ReadFunction<String, UserDBResource> userReadFunc = new ReadFunction<>(UserDBResource::getUserName);
// 调用时传入对应类型的资源实例
String userName = userReadFunc.readValue(userDBResourceInstance);

内容的提问来源于stack exchange,提问作者hello2244

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 13:45:04